通过修改注册表添加IE右键菜单
2008-03-11 09:38
633 查看
最近在开发一个项目的时候,希望在IE的右键菜单中添加快捷操作。因为暂时还来不及开发插件,通过安装程序添加IE右键菜单,因此想到的最简单的方法就是修改注册表。
IE的右键菜单扩展位于注册表[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt] 项下。在此建立一个新项,项的名称就是出现在右键菜单中的标题,因此我建立了一个新项“在GoWords.cn搜索”。这样,在IE中点击鼠标右键的时候就会出现“在GoWords.cn搜索”的选项。
将新建项的默认值应该设定为一个URL地址,当用户点击菜单项后,IE就会调用URL指向的页面中的脚本。我把这个这个包含脚本的页面放在了站点的/tools/search.htm中,因此,项“在GoWords.cn搜索”的默认值设为了“http://www.gowords.cn/tools/search.htm"。
在search.htm中,包含了要执行的脚本。脚本中通过访问IE提供的external对象的menuArguments属性就可以访问IE中的页面中的各种对象,例如链接、图片、表单域、被选中的文本等。最简单的脚本可以这样:
<script type="text/javascript" language="javascript">
var sel;
function OnContextMenu()
...{
var parentwin = external.menuArguments;
if (external.menuArguments) ...{
var parentwin = external.menuArguments;
if (parentwin.document.selection) ...{
sel = parentwin.document.selection.createRange().text;
window.open("http://www.gowords.cn/dictionary/s.aspx?q="+encodeURI(sel));
}
}
}
OnContextMenu();
</script>
实际上,这是我search.htm的全部内容。
经过这些步骤,我的IE右键菜单中出现了“在GoWords.cn搜索”,选择这个菜单的时候,浏览器就会转到gowods.cn进行搜索并显示搜索结果。
实际上,这个搜索需要一个关键词。因此,更合理的方式是通过鼠标选中某个词才能进行搜索。因此,只有鼠标选择某个关键词后这个菜单项才有用。通过注册项中DWORDS类型的Contexts项可以制定菜单项在右键点击IE中的什么对象时出现,它可以为以下值的“或”组合:
例如,希望菜单项在用户点击图片或者超链接时出现,那么就将值设置为dword:00000022。如果不设置Contexts项,则菜单项会在点击任何对象时出现在右键菜单中。
我在“[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt/在GoWords.cn搜索]”项下新建了一个DWORD类型的Contexts,并将其值设为10。这样,只有鼠标选择了某个词之后,右键菜单中才出现“在GoWords.cn搜索”选项。
注册表的操作可以通过reg文件导入来自动完成。我把“[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt/在GoWords.cn搜索]”项导出为Add_GowordsIEHelper.reg文件(可以在注册表编辑器REGEDIT中导出,或者使用注册表操作工具Registry Explorer(www.regxplor.com))。Add_GowordsIEHelper.reg文件的内容如下:
REGEDIT4
;Add IE Helper for adding new lemma to my gowords.com
;Generated with Registry Explorer
;http://www.regxplor.com
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt]
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt在GoWords.cn中查询]
@="http://www.gowords.cn/tools/search.aspx"
"contexts"=dword:00000010
双击这个文件,将注册信息导入注册表,就可以完成IE右键菜单的注册。对于使用IE内核的浏览器,如Maxthon,右键菜单会出现相同的选项。
为了方便,我还写了删除相应注册表项的Remove_GowordsIEHelper.reg:
REGEDIT4
[-HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt在GoWords.cn中搜索]
IE的右键菜单扩展位于注册表[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt] 项下。在此建立一个新项,项的名称就是出现在右键菜单中的标题,因此我建立了一个新项“在GoWords.cn搜索”。这样,在IE中点击鼠标右键的时候就会出现“在GoWords.cn搜索”的选项。
将新建项的默认值应该设定为一个URL地址,当用户点击菜单项后,IE就会调用URL指向的页面中的脚本。我把这个这个包含脚本的页面放在了站点的/tools/search.htm中,因此,项“在GoWords.cn搜索”的默认值设为了“http://www.gowords.cn/tools/search.htm"。
在search.htm中,包含了要执行的脚本。脚本中通过访问IE提供的external对象的menuArguments属性就可以访问IE中的页面中的各种对象,例如链接、图片、表单域、被选中的文本等。最简单的脚本可以这样:
<script type="text/javascript" language="javascript">
var sel;
function OnContextMenu()
...{
var parentwin = external.menuArguments;
if (external.menuArguments) ...{
var parentwin = external.menuArguments;
if (parentwin.document.selection) ...{
sel = parentwin.document.selection.createRange().text;
window.open("http://www.gowords.cn/dictionary/s.aspx?q="+encodeURI(sel));
}
}
}
OnContextMenu();
</script>
实际上,这是我search.htm的全部内容。
经过这些步骤,我的IE右键菜单中出现了“在GoWords.cn搜索”,选择这个菜单的时候,浏览器就会转到gowods.cn进行搜索并显示搜索结果。
实际上,这个搜索需要一个关键词。因此,更合理的方式是通过鼠标选中某个词才能进行搜索。因此,只有鼠标选择某个关键词后这个菜单项才有用。通过注册项中DWORDS类型的Contexts项可以制定菜单项在右键点击IE中的什么对象时出现,它可以为以下值的“或”组合:
缺省 | 0x1 |
图片 | 0x2 |
控件 | 0x4 |
表单域 | 0x8 |
选择文本 | 0x10 |
锚点 | 0x20 |
我在“[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt/在GoWords.cn搜索]”项下新建了一个DWORD类型的Contexts,并将其值设为10。这样,只有鼠标选择了某个词之后,右键菜单中才出现“在GoWords.cn搜索”选项。
注册表的操作可以通过reg文件导入来自动完成。我把“[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt/在GoWords.cn搜索]”项导出为Add_GowordsIEHelper.reg文件(可以在注册表编辑器REGEDIT中导出,或者使用注册表操作工具Registry Explorer(www.regxplor.com))。Add_GowordsIEHelper.reg文件的内容如下:
REGEDIT4
;Add IE Helper for adding new lemma to my gowords.com
;Generated with Registry Explorer
;http://www.regxplor.com
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt]
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt在GoWords.cn中查询]
@="http://www.gowords.cn/tools/search.aspx"
"contexts"=dword:00000010
双击这个文件,将注册信息导入注册表,就可以完成IE右键菜单的注册。对于使用IE内核的浏览器,如Maxthon,右键菜单会出现相同的选项。
为了方便,我还写了删除相应注册表项的Remove_GowordsIEHelper.reg:
REGEDIT4
[-HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt在GoWords.cn中搜索]
相关文章推荐
- 通过修改注册表添加IE右键菜单
- 通过注册表在文件的右键菜单添加程序快速打开
- 通过注册表添加右键菜单选项
- Windows7下通过注册表修改右键新建菜单中“文本文档”名称
- 网页修改注册表--在IE中添加右键菜单项及任务栏按钮
- vb修改注册表——在IE 中添加右击菜单的一项功能
- 修改注册表在右键菜单中添加清空文件夹命令
- 网页修改注册表--在IE中添加右键菜单项及任务栏按钮
- 修改注册表在特定文件右键菜单中添加菜单项
- 通过修改注册表去除Vista/7右键公文包菜单
- 修改注册表添加鼠标右键菜单选项
- 【电脑使用】修改注册表,添加右键菜单“打开”的方法
- [转]win7右键菜单注册表修改&win7添加dos命令到右键
- 在注册表中添加windows鼠标右键菜单
- 修改注册表添加IE信任站点及启用Activex控件方法
- 【Win7中如何通过修改注册表将IE设置为默认浏览器】
- 在IE右键菜单中添加菜单项
- 如何在IE右键菜单中添加菜单项(转)
- 在注册表中修改右键菜单
- 注册表修改鼠标右键菜单