注册Shell扩展

【勇芳软件工作室】汉化HomePreviousNext

必须在注册表数据库中注册一个shell扩展名。每个处理程序的类标识符必须在HKEY_CLASSES_ROOT\CLSID键下注册。CLSID键包含类标识符键值的列表,例如{00030000-0000-0000-C000-000000000046}.每个类标识符密钥是由UUIDGEN工具生成的全局唯一标识符(GUID)。在每个类标识符键中,处理程序添加了一个InProcServer32键,它提供处理程序的DLL的位置。最好给处理程序的完整路径;使用完整的路径保持处理程序与当前路径无关,并加快了DLL的加载时间。

shell用于将shell扩展处理程序与文件类型相关联的信息存储在的shellex键下。外壳还使用HKEY_CLASSES_ROOT下的其他几个特殊键来查找外壳扩展:*驱动器打印机以及网络提供商的密钥。按键说明:

*您可以使用*键来注册shell调用的处理程序,只要以下列方式为文件对象创建上下文菜单或属性表。

HKEY_CLASSES_ROOT

* = *

的shellex

ContextMenuHandlers

{00000000-1111-2222-3333-00000000000001}

PropertySheetHandlers

{00000000-1111-2222-3333-00000000000002}

shell使用ExtraMenu和SummaryInfo处理程序的实例来添加到每个文件对象的上下文菜单和属性表。

*您可以使用键为文件系统中的目录注册一个shell扩展名。您可以以与*键注册这些处理程序相同的方式注册上下文菜单处理程序,复制钩子处理程序和属性表处理程序。一个额外的处理程序拖放处理程序只适用于打印机键。以下显示键的示例。

Folder = Folder

的shellex

DragDropHandlers

{00000000-1111-2222-3333-00000000000004}

CopyHookHandlers

{00000000-1111-2222-3333-00000000000005}

*您可以使用驱动器键与键相同的注册,但驱动器键仅针对根路径调用(例如C:\\)。

* 打印机键允许与键相同的注册,但它使用额外的处理程序进行打印机事件,删除或删除打印机(通过复制钩子处理程序)和打印机属性(使用属性表处理程序和上下文菜单处理程序)。

为了避免与其他类的冲突,您必须使用真正的GUID,而不是前面示例中显示的示例字符串。