一、获取新建菜单项子菜单的注册表信息
Windows操作系统右键菜单有一个常用的菜单项--新建。新建菜单是用户常用的操作,其下支持创建很多当前系统支持的文件格式,如
这些新建菜单项是在Windows的注册表中有对应项,所以可以通过访问注册表来获取“新建”菜单项的子菜单项对应的打开程序。这个注册表的路径为:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew
进入方法:操作系统 | 开始 | 搜索程序和文件 | 输入"regedit"就会找到regedit.exe注册表编辑器(regedit 是 register edit的组合缩写)。展开到上面指定的那个路径下,会开到如下效果:
有了这信息后就可以开始通过注册表读写函数来获取需要的新建菜单项的注册表信息了。在此就不讲解详细的操作方法,只提供完成的工程项目1供下载研究,点此下载。
工程运行效果如下:
由图可知,当前系统支持新建的文件格式有: Access数据库-位图-word文档-快捷方式-ppt-文本文档-Excel表格
二、通过子菜单项对应的文件类型扩展名找到文件对应的打开程序
通过第一步我们找到了当前系统新建菜单项支持的文件格式,再通过这个格式扩展名(如 .txt)在注册表中查找对应的打开程序,注册表查找路径为:
HKEY_CLASSES_ROOT\..在这个路径下找到一个叫 .txt 的子项,这个子项对应有一个“默认”键的键值,如下:
键值的信息为 “EditPlus 3.txt”,然后再在 HKEY_CLASSES_ROOT\.. 路径下找到 “EditPlus 3.txt”这个子键,如下:
进入到..\shell\open\command下的“默认”键名对应的数据即为(文本文件) .txt 格式对应的打开程序的路径 D:\apps\EditPlus\EDITPLUS.EXE
在此提供这个工程项目2,点下载。运行效果如下:
三、用途
1. 用程序修改 对应扩展名的默认打开程序;(牛氓软件会干这样的事)
2. 根据文件的扩展名找到对应的打开程序的安装路径后,配合ShellExecut函数使用;
3. 用于破坏!(好坏啊)