为IE增加按钮
来源:互联网 发布:网球王子 知乎 编辑:程序博客网 时间:2024/05/19 22:44
基本原理:
从IE5开始便允许我们向工具栏添加自己的按钮,其本质就是修改注册表,添加创建此按钮所需的信息。
实现步骤:
1.创建此按钮的GUID(globally unique identifier)
你可以通过Visual Studio中的Guidgen.exe来产生GUID。
例如我生成的GUID是{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
以下的例子中我都使用这个GUID来作说明。
2.创建子键HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/Extensions/{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
3.在此子键下创建如下字串值。
(1)CLSID
这是IE的CLSID,其值必须为{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
(2)Default Visible
指明此按钮默认状态下是否可见,Yes表示可见,No为不可见
(3)ButtonText
按钮文字
(4)Icon
默认状态下的图标全路径,例如c:/vckbase.ico。也可以是EXE文件中包含的图标,例如:C:/PROGRA~1/NETANTS/NetAnts.exe,1000
(5)HotIcon
鼠标移到按钮上时的图标全路径
如下子键为按下按钮后需要执行的相应动作:可以是COM对象、浏览条Explorer Bar、脚本Script、可执行文件。下面是网络蚂蚁修改注册表的例子: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/Extensions/{57E91B47-F40A-11D1-B792-444553540000}] "CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}" "Default Visible"="Yes" "HotIcon"="C://PROGRA~1//NETANTS//NetAnts.exe,1001" "Icon"="C://PROGRA~1//NETANTS//NetAnts.exe,1000" "Exec"="C://PROGRA~1//NETANTS//NetAnts.exe" "ButtonText"="NetAnts" "MenuText"="&NetAnts" "MenuStatusBar"="Launch NetAnts" 下面来看看具体的编程过程。 //这是由GUIDGEN产生的GUID:{06926B30-424E-4f1c-8EE3-543CD96573DC} CRegKey reg; char KeyName[]="Software//Microsoft//Internet Explorer//Extensions//{06926B30-424E-4f1c-8EE3-543CD96573DC}"; TCHAR PathName[MAX_PATH]; TCHAR IconPathName[MAX_PATH]; ///正常时的图标全路径 TCHAR HotIconPathName[MAX_PATH]; ///鼠标覆盖时的图标全路径 GetModuleFileName(0,PathName,MAX_PATH); ///得到本可执行文件的路径 strcpy(IconPathName,PathName); strcpy(HotIconPathName,PathName); strcat(HotIconPathName,",131"); ///131是图标的ID,你可以以资源方式打开EXE文件就可以看到所有资源及其ID strcat(IconPathName,",129"); reg.Create(HKEY_LOCAL_MACHINE,KeyName); reg.SetValue("{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}","CLSID"); reg.SetValue("Yes","Default Visible"); reg.SetValue("VC知识库","ButtonText"); reg.SetValue(IconPathName,"Icon"); reg.SetValue(HotIconPathName,"HotIcon"); /////假如是执行脚本,可以是reg.SetValue("c://test.html","Script"); ///在test.html 存放你的脚本代码
reg.SetValue("http://www.vckbase.com/","Exec");///打开网页 下面我们再来看看如何添加COM组件 对于COM组件来说,它是没有Exec键名的,但是它多了一个ClsidExtension键名,包含一个类标识,通过这个类标识,IE能够找到实现扩展的COM组件。ClsidExtension实质上等于COM组件的全球唯一定位符COM组件应该在注册时实现上述注册项的添加。而且COM组件还应该实现IoleCommandTarget接口,另外如果你的COM 对象还需要存取当前IE显示的DHTML网页,你还需要实现IobjectWithSite接口。在实现IoleCommandTarget接口的时候,你必须提供IoleCommandTarget::Exec方法,这个方法有一个参数nCmdID标识调用是工具栏按钮单击激活或是菜单响应激活,这种差别允许编程人员为两种不同的事件提供不同的行为。当你实现IobjectWithSite接口时,Internet Explorer会调用IobjectWithSite::SetSite,并传递给它一个IshellBrowser指针,借助于这个指针可以获得与浏览相关的IwebBrowser对象,通过它你就可以对HTML网页进行解析,访问页面中的每一个元素了。 参考文献:http://www.vckbase.com/document/viewdoc/?id=190 http://www.ccw.com.cn/htm/app/salon/01_12_12_3.asp
从IE5开始便允许我们向工具栏添加自己的按钮,其本质就是修改注册表,添加创建此按钮所需的信息。
实现步骤:
1.创建此按钮的GUID(globally unique identifier)
你可以通过Visual Studio中的Guidgen.exe来产生GUID。
例如我生成的GUID是{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
以下的例子中我都使用这个GUID来作说明。
2.创建子键HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/Extensions/{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
3.在此子键下创建如下字串值。
(1)CLSID
这是IE的CLSID,其值必须为{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
(2)Default Visible
指明此按钮默认状态下是否可见,Yes表示可见,No为不可见
(3)ButtonText
按钮文字
(4)Icon
默认状态下的图标全路径,例如c:/vckbase.ico。也可以是EXE文件中包含的图标,例如:C:/PROGRA~1/NETANTS/NetAnts.exe,1000
(5)HotIcon
鼠标移到按钮上时的图标全路径
如下子键为按下按钮后需要执行的相应动作:可以是COM对象、浏览条Explorer Bar、脚本Script、可执行文件。下面是网络蚂蚁修改注册表的例子: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/Extensions/{57E91B47-F40A-11D1-B792-444553540000}] "CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}" "Default Visible"="Yes" "HotIcon"="C://PROGRA~1//NETANTS//NetAnts.exe,1001" "Icon"="C://PROGRA~1//NETANTS//NetAnts.exe,1000" "Exec"="C://PROGRA~1//NETANTS//NetAnts.exe" "ButtonText"="NetAnts" "MenuText"="&NetAnts" "MenuStatusBar"="Launch NetAnts" 下面来看看具体的编程过程。 //这是由GUIDGEN产生的GUID:{06926B30-424E-4f1c-8EE3-543CD96573DC} CRegKey reg; char KeyName[]="Software//Microsoft//Internet Explorer//Extensions//{06926B30-424E-4f1c-8EE3-543CD96573DC}"; TCHAR PathName[MAX_PATH]; TCHAR IconPathName[MAX_PATH]; ///正常时的图标全路径 TCHAR HotIconPathName[MAX_PATH]; ///鼠标覆盖时的图标全路径 GetModuleFileName(0,PathName,MAX_PATH); ///得到本可执行文件的路径 strcpy(IconPathName,PathName); strcpy(HotIconPathName,PathName); strcat(HotIconPathName,",131"); ///131是图标的ID,你可以以资源方式打开EXE文件就可以看到所有资源及其ID strcat(IconPathName,",129"); reg.Create(HKEY_LOCAL_MACHINE,KeyName); reg.SetValue("{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}","CLSID"); reg.SetValue("Yes","Default Visible"); reg.SetValue("VC知识库","ButtonText"); reg.SetValue(IconPathName,"Icon"); reg.SetValue(HotIconPathName,"HotIcon"); /////假如是执行脚本,可以是reg.SetValue("c://test.html","Script"); ///在test.html 存放你的脚本代码
reg.SetValue("http://www.vckbase.com/","Exec");///打开网页 下面我们再来看看如何添加COM组件 对于COM组件来说,它是没有Exec键名的,但是它多了一个ClsidExtension键名,包含一个类标识,通过这个类标识,IE能够找到实现扩展的COM组件。ClsidExtension实质上等于COM组件的全球唯一定位符COM组件应该在注册时实现上述注册项的添加。而且COM组件还应该实现IoleCommandTarget接口,另外如果你的COM 对象还需要存取当前IE显示的DHTML网页,你还需要实现IobjectWithSite接口。在实现IoleCommandTarget接口的时候,你必须提供IoleCommandTarget::Exec方法,这个方法有一个参数nCmdID标识调用是工具栏按钮单击激活或是菜单响应激活,这种差别允许编程人员为两种不同的事件提供不同的行为。当你实现IobjectWithSite接口时,Internet Explorer会调用IobjectWithSite::SetSite,并传递给它一个IshellBrowser指针,借助于这个指针可以获得与浏览相关的IwebBrowser对象,通过它你就可以对HTML网页进行解析,访问页面中的每一个元素了。 参考文献:http://www.vckbase.com/document/viewdoc/?id=190 http://www.ccw.com.cn/htm/app/salon/01_12_12_3.asp
- 为IE增加按钮
- VB.Net为DataGridView增加过滤按钮
- 为UITableViewCell增加按钮及处理按钮事件的方法
- 微软计划为 IE 增加隐私浏览模式
- 为FckEditor增加插件,添加自定义的功能按钮ToolBarButton
- 4、为地图增加浏览控制按钮——toolbar
- 如何为对话框增加最大化和最小化按钮
- Android基础 为listView增加更多按钮(分页显示)
- HTML 5中为audio标签增加停止按钮
- 为WordPress默认编辑器TinyMCE增加额外的按钮
- easyui 为所有的 combobox增加清除按钮
- iOS_为数字键盘增加完成按钮即ToolBar
- cocos为引擎自带的editbox增加确定按钮
- 如何为SugarCRM的快捷操作栏增加一个按钮?
- [AHK]为通达信标记文字窗口的按钮增加热键
- 用C#代码画出一个Table同时增加 按钮事件为他动态增加行列
- 讨论: IE如何使用prototype为浏览器内置对象增加成员
- 动态增加按钮
- 高级指针话题
- 编写一个函数,实现两分法查找算法。
- 学习CRYPTOAPI第一天
- 学习CRYPTO第二天
- 学习CRYPTO第三天
- 为IE增加按钮
- 怎么样卸载WindowsXP带的MSN4.7?
- 词霸怎么在pdf 文件里取词?
- 初学Windows下mysql的安装以及其C API使用
- 我在五一期间的计划.
- [个人整理]怎样把中文转换为16进制后,又还原为中文?
- 一个ASP.NET中使用的MessageBox类
- 双绞线缆标识的含义
- 精神崩溃的老鼠