如何添加一个菜单项到微软Internet Explorer浏览器的“工具”(Tools)下拉菜单中?这个新添加的菜单项表示运行一个Microsoft Win32应用程序,或者表示运行一个脚本程序。
注意:下面描述的添加菜单项的步骤都是针对访问机器的全部用户而言的,如果想为每一个不同用户添加菜单,可以在下面的步骤中用HKEY_CURRENT_USER替换HKEY_LOCAL_MACHINE。
建立一个正确的全局唯一表示符,即GUID。它可以使用诸如GUIDGEN(Visual Studio光盘中有)等工具生成,它是一组128位的二进制数字,这些数字可以保证在“任何空间和时间”里独一无二,没有重复。在空间,是由于数字生成器会读取
网卡的ID号码;在时间,是由于同时会用到系统的日期和时间。可用GUID标识COM类(此时叫作CLSID)或者COM
接口(IID)。尽管名字不同,但基本概念与二进制结构都是相同的。GUID亦可在其他环境中使用,这里不再赘述。
现在我运行GUIDGEN.EXE获得一个GUID{93D80854-9DCB-426d-947D-F20CCC2F451B},
在下面的注册表项目下建立一个新项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions
建立正确后,就象下面一样:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{93D80854-9DCB-426d-947D-F20CCC2F451B}
(可选步骤)在下面的注册表项目下,建立一个新的字符串数值MenuCustomize:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions
建立正确后,就象下面一样:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\MenuCustomize
如果需要添加的新菜单项出现在浏览器的“帮助”(HELP)菜单下,就设置MenuCustomize的数值为“help”。如果设置成其他数值,或者根本没有设置MenuCustomize,菜单项将最终出现在“工具”(Tools)菜单下面。
在下面的注册表项目下,创建一个新的字符串数值CLSID:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{93D80854-9DCB-426d-947D-F20CCC2F451B}
建立正确后,就象下面一样:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{93D80854-9DCB-426d-947D-F20CCC2F451B}\CLSID
设置CLSID的数值为{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}。
在下面的注册表项目下,创建一个新的字符串数值MenuText:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{93D80854-9DCB-426d-947D-F20CCC2F451B}
建立正确后,就象下面一样:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{93D80854-9DCB-426d-947D-F20CCC2F451B}\MenuText
将MenuText的数值设置为在工具菜单中显示的文字。注意,文字不支持任何为了实现快捷键而需要的下划线。
(可选步骤)在下面的注册表项目下,创建一个新的字符串数值MenuStatusBar :
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{93D80854-9DCB-426d-947D-F20CCC2F451B}
建立正确后,就象下面一样:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\MenuStatusBar
MenuStatusBar中设置的文字,表示当菜单项高亮度选中时,在浏览器的状态栏中显示的信息,为了给用户一个明白的意思,请设置文字为该菜单项执行程序或者执行脚本的确切含义。
添加细节
完成了上面的初始步骤后,就需要进一步添加键的数值。具体的数值以及下面的其他步骤要依赖于菜单项表示的实际运行程序的类型。下面将讨论可能的几个程序类型及其添加细节:
COM对象
下面的步骤将实现在浏览器的“工具”菜单下创建一个执行COM对象的菜单项。同样,如果省略任何一个步骤(除去可选的),最终都不会达到添加菜单项的目的。而且,描述的步骤都是针对访问机器的全部用户而言的,如果想为每一个不同用户添加菜单,可以在下面的步骤中用HKEY_CURRENT_USER替换HKEY_LOCAL_MACHINE。
注册COM对象
在下面的注册表项目下,创建一个新的字符串数值ClsidExtension:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\
建立正确后,就象下面一样:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\\ClsidExtension
将ClsidExtension设置为COM对象的GUID。
而且,COM对象必须执行IOleCommandTarget。如果COM对象需要访问页面上的DHTML对象模型,就必须执行IObjectWithSite。
脚本
下面的步骤将实现在浏览器的“工具”菜单下创建一个执行脚本程序的菜单项。同样,如果省略任何一个步骤(除去可选的),最终都不会达到添加菜单项的目的。而且,描述的步骤都是针对访问机器的全部用户而言的,如果想为每一个不同用户添加菜单,可以在下面的步骤中用HKEY_CURRENT_USER替换HKEY_LOCAL_MACHINE。
在下面的注册表项目下,创建一个新的字符串数值Script:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\
建立正确后,就象下面一样:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\\Script
设置Script的数值为要运行脚本的全路径。
执行程序
下面的步骤将实现在浏览器的“工具”菜单下创建一个执行.exe文件的菜单项。同样,如果省略任何一个步骤(除去可选的),最终都不会达到添加菜单项的目的。而且,描述的步骤都是针对访问机器的全部用户而言的,如果想为每一个不同用户添加菜单,可以在下面的步骤中用HKEY_CURRENT_USER替换HKEY_LOCAL_MACHINE。
在下面的注册表项目下,创建一个新的字符串数值Exec:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\
建立正确后,就象下面一样:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\\Exec