欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

注册表和COM编程

程序员文章站 2024-03-14 17:44:22
...

在注册表中右键菜单的项目都包含在第一子项 HKEY_CALSS_ROOT 中。展开该项,第一个子项一般是 * ,这个统配符表示一切后缀的文件都通用。也就是说,这个子项中的一切右键菜单项,没有特别说明,会出现每一个文件的右键菜单中。
再比如.html项,就是这个项分管以.html后缀结尾的文件的右键菜单。

在一个子项的其内部,所有的右键菜单分为两部分存储
shell:可通过shell子项编辑注册表的项值实现一些简单的右键功能。
对shell项的修改:
增加子项,键的名字就会是右键菜单项的显示名字。
在该子项中增加command项,数据中填入字符串值是cmd命令。如果是多行cmd命令的执行需要编写一个bat脚本,然后调用此bat脚本即可。

"D:\Environment\Python36\python.exe" "%1" %*

shellex:键名称是一串***的,***是COM ID,在注册表中可以将一个COM组件的dll和一个COM ID联系到一起。通过COM编程实现一些复杂的右键功能。
编写可以参考
https://blog.csdn.net/qq_41786318/article/details/79814986

文件夹,文件夹分为两类菜单,一类是鼠标指向一个文件夹图标时,点击右键出来的菜单;第二类菜单时鼠标在已经打开的文件夹窗口的空白处,点击右键弹出的菜单。如下图所示,第一类菜单的注册表项直接在 Directory 下,shell和shellex\ContextMenuHandlers 里面;第二类菜单则在子项 Background 里面。

Directory:鼠标指向一个文件夹图标时,点击右键出来的菜单
–BackGround子项:在已经打开的文件夹窗口的空白处,点击右键弹出的菜单

DesktopBackground:桌面空白处菜单。注意这里的菜单项不全,因为还包括在文件夹空白处那项的结果。

Drive:驱动器
Folder:文件夹
fontfile:字体文件

shellex项的修改:
COM是一组接口规范,尽管不是所有的dll都是COM组件,但是如果它是一个COM组件,就可以拥有一个唯一的ID。
按我的理解,COM层在.NET的下面,给.NET/C#提供了一组标准函数库调用

制作一个折叠的子菜单组
注册表和COM编程
1.MUIVerb的值要以&开头作为子菜单的名字
2.需要Subcommands项

https://blog.csdn.net/CrowNAir/article/details/78128566

上一篇: TensorFlow入门(1)

下一篇: G1Introduct_cn