用VC在IE浏览器的工具条上添加命令按钮

2016-02-19 19:06 37 1 收藏

下面是个简单易学的用VC在IE浏览器的工具条上添加命令按钮教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

  不知道读者朋友注意到没有,金山词霸、网络蚂蚁等应用软件在电脑上安装后会向IE浏览器的工具条添加自己的按钮,用户按下按钮后IE会启动对应的软件,作出相应的动作。上述这种功能是如何实现的呢?本实例介绍了一种实现方法,可以将自己应用程序的按钮添加到IE的工具条中。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  一、实现方法

  微软从IE5.0开始便允许开发人员向其工具栏中添加按钮,其实现方法的本质就是修改注册表,添加创建此按钮所需的信息。首先要创建此按钮的GUID(globally unique identifier),这个GUID可以通过Visual Studio中的Guidgen.exe来产生。例如一个生成的GUID是{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}(本例在以下的叙述中都使用这个GUID来作说明)。有了GUID值后,要在Windows注册表中创建子键:

HKEY_LOCAL_MACHINESoftwareMicrosoftInternet ExplorerExtensions{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}

  在此子键下创建如下字串值:

  1)CLSID

  这是IE的CLSID,其值必须为{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
 
  2)Default Visible

  指明此按钮默认状态下是否可见,Yes表示可见,No为不可见

  3)ButtonText

  按钮文字

  4)Icon

  默认状态下的图标全路径,例如c:vckbase.ico。也可以是EXE文件中包含的图标,例如:C:PROGRA~1NETANTSNetAnts.exe,1000

  5)HotIcon

  鼠标移到按钮上时的图标全路径

  如下子键为按下按钮后需要执行的相应动作:可以是COM对象、浏览条Explorer Bar、脚本Script、可执行文件。下面我们逐个进行介绍:

  ①COM对象

  你需要建立名为ClsidExtension的字串值,其值应该为此COM对象的GUID,例如金山词霸就使用ClsidExtension来调用自己的COM对象。

  ②浏览条Explorer Bar

  所谓浏览条就是类似我们按下往IE历史按钮后打开的历史记录列表,其本质好比MFC中的CReBar对象。 浏览条也可以自己制作,因为超出了本文的范围,暂不作讲解。 为了在按下按钮后打开一个浏览条,你需要建立名为BandCLSID的字串值,其值为浏览条的CLSID。

  ③脚本Script

  按下按钮后执行的脚本,例如:"%SystemRoot%webelated.htm",你可以在这个HTML文件里面加上脚本来得到IE当前的许多信息,需要注意的是假如你想通过Script打开非脚本的HTML文件是不可行的。请参考如下NetAnts取得当前页所有唇拥慕疟敬?BR
<script language="VBScript">
On Error Resume Next
set NetAntsApi = CreateObject( "NetAnts.API" )
if err<>0 then
 Alert("NetAnts not properly installed on this PC!")
else
 set links = external.menuArguments.document.links
ReDim params(links.length*2)
params(0)=external.menuArguments.document.Url
for i = 0 to links.length-1
 params(i*2+1)=links(i).href
 params(i*2+2)=links(i).innerText
next
NetAntsApi.AddUrlList params
end if
</script>

  我们再看一个比较有用的脚本,这段脚本的作用是得到当前地址,并打开此网址的首页:

<script>
//userURL得到的是当前地址,例如是http://www.yesky.com
userURL=external.menuArguments.location.href;
protocolIndex=userURL.indexOf("://",4);
serverIndex=userURL.indexOf("/",protocolIndex + 3);
finalURL=userURL.substring(0,serverIndex);
external.menuArguments.open(finalURL, "_blank");//打开网址;
</script>

  ④可执行文件

  假如想让IE在按下按钮后执行一个可执行文件, 可以增加名为Exec的字串值,其值为此可执行文件的全路径,例如c:windowsotepad.exe或者是一个网址http://www.yesky.net
有了上面的知识,就可以通过修改注册表来实现向IE工具条添加按钮的功能了。


  二、编程步骤

  1、启动Visual C++6.0,生成一个基于对话框的应用程序,将程序命名为"IEButton";

  2、修改应用程序对话框中的按钮,其标题分别为"添加"和"退出";

  3、使用Class Wizard为应用程序的"添加"按钮添加鼠标单击的消息响应函数OnAdd();

  4、添加代码,编译运行程序。 

  三、程序代码

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

void CIEButtonDlg::OnAdd()
{
 ///这是由GUIDGEN产生的GUID:{06926B30-424E-4f1c-8EE3-543CD96573DC}
 CRegKey reg;
 char KeyName[]="SoftwareMicrosoftInternet
 ExplorerExtensions{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("天极网","ButtonText");
 reg.SetValue(IconPathName,"Icon");
 reg.SetValue(HotIconPathName,"HotIcon");
 /////假如是执行脚本,可以是reg.SetValue("c:test.html","Script"); ///在test.html 存放你的脚本代码<br>
 reg.SetValue("http://www.yesky.com/","Exec");///打开网页
}

  四、小结

  本实例介绍了在IE工具栏中添加按钮的方法和思路,读者朋友们可以在消化吸收的基础上,把自己开发的应用程序添加到IE中,为实现自我宣传增加一种方法和途径。

来源:https://www.tulaoshi.com/n/20160219/1620011.html

延伸阅读
在工具栏按钮上添加文本标签 作者:赵新国 一、前 言 对于 工具栏 ,我想大家一定不陌生,它直观,使用方便,它给应用程序的用户带来极大的方便.对VC++程序员来说,为自己开发的软件加上一个工具栏并不难,几乎每本介绍VC++的书都少不了介绍这方面的内容,并且,如果在开发初期就想加入工具...
标签: 浏览器
IE浏览器前进后退按钮的那些事 浏览器上的前进与后退按钮作为使用频率最高的功能之一,IE团队在设计IE9界面时,便对这两个按钮做了很多优化细节处理。 比如从视觉上看,后退按钮要比前进按钮大的多,点击更为方面,那为什么要这么设计呢?原来微软在对用户使用浏览器的习惯进行大量调查后发现,用户平时点击后退按钮的频率比前进按钮...
IE浏览器本身的问题 当IE浏览器本身出现故障时,自然会影响到浏览了;或者IE被恶意修改破坏也会导致无法浏览网页。这时可以尝试用“IE修复专家”来修复(建议到安全模式下修复),或者重装IE。 网络设置的问题 这种原因比较多出现在需要手动指定IP、网关、DNS服务器联网方式下,及使用代理服务器上网的。仔细检查计算机的网络设...
程序的主角是一个ActiveX控件:WebBrowser。当然,缺省状态下VB的工具箱中并没有它,我们得手工加入,方法是:右击工具箱,在出现的快捷菜单中选择“部件...”,确保在弹出的对话框中选中“控件”标签,找到MicrosoftInternetControls,在它前面的小框中打钩,然后确定。此时你会发现工具箱中多了两个小图标,其中,地球图标代表的控件正是我们...
标签: 浏览器
在IETester上安装IE9浏览器预览版   自IE9浏览器预览版发布以后,因为没有具备浏览器最基本的功能,如连地址栏都没有,所以在使用起来感觉到非常的不便!而近期在使用IETester测试网页在IE浏览器不同版本下兼容性如何的时候,发现IETester上已经能够安装IE9预览版了,下载更新安装完以后,觉得在这上面操作IE9还挺方便的。如果你也想要...

经验教程

502

收藏

12
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部