windows客户端实现类似windows系统右键新建菜单功能
客户端右键新建菜单功能设计文档
功能需求:
现在Client客户端右键新建只能新建四个文件,创建文件方式兼容性相对较低,需要改进。
改进需求:
Client右键新建文件类型,需要跟操作系统(win xp)桌面“右键新建功能”内的新建文件类型一致。客户端“右键新建功能”内的文件类型,在用户安装新程序出现新文件类型的同时也需要更新。新建文件功能同时能够新建新的文件
技术方案:
Win xp的右键新建文件列表都存储在
HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew项,可以直接从中获取。对于新创建文件大小非0kb文件,win xp 从c:\windows\shellNew 目录下读取相关模版,写入新建文件;新文件创建大小为0KB的文件,直接CreateFile;
操作系统右键新建文件实现原理:(以word为例子),如下图:
图(1) 操作系统右键新建文件实现流程
实现流程:
Client从KEY_CURRENT_USER\Software\
Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew中读取右键文件的列表,动态生成Client右键的新建文件类型列表。新建功能生成文件事件是动态绑定按钮。下面新建文件的功能实现模拟操作作系统的新建文件过程.如下图:
图(2)Client右键菜单文档实现方案