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

烘焙 2021年09月06日

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

一、实现方法

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

HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer\\Extensions\\{1FBA04EE-DF1F-0000F87ABD16}

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

1)CLSID

这是IE的CLSID,其值必须为{1FBA04EE-DF1F-0000F87ABD16}

2)Default Visible

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

3)ButtonText

按钮文字

4)Icon

默认状态下的图标全路径,例如c:\\o。也可以是EXE文件中包含的图标,例如:C:\\PROGRA~1\\NETANTS\\e,1000

5)HotIcon

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

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

①COM对象

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

②浏览条Explorer Bar

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

③脚本Script

按下按钮后执行的脚本,例如:\"%SystemRoot%\\web\\m\",你可以在这个HTML文件里面加上脚本来得到IE当前的许多信息,需要注意的是假如你想通过Script打开非脚本的HTML文件是不可行的。请参考如下NetAnts取得当前页所有链接的脚本代码

<script language=\"VBScript\">

On Error Resume Next

set NetAntsApi = CreateObject( \"I\" )

if err<>0 then

Alert(\"NetAnts not properly installed on this PC!\")

else

set links = nks

ReDim params(ngth*2)

params(0)=l

for i = 0 to ngth-1

params(i*2+1)=links(i).href

params(i*2+2)=links(i).innerText

next

dUrlList params

end if

</script>

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

<script>

//userURL得到的是当前地址,例如是

userURL=ef;

苹果可以直接利用自家支付生态系统帮助零售商完成支付。 protocolIndex=dexOf(\"://\",4);

serverIndex=dexOf(\"/\",protocolIndex + 3);

finalURL=bstring(0,serverIndex);

en(finalURL, \"_blank\");//打开址;

</script>

④可执行文件

假如想让IE在按下按钮后执行一个可执行文件, 可以增加名为Exec的字串值,其值为此可执行文件的全路径,例如c:\\windows\\e或者是一个址

有了上面的知识,就可以通过修改注册表来实现向IE工具条添加按钮的功能了。

二、编程步骤

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

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

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

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

晋城白癜风在哪里治疗
郑州白癜风重点医院
重庆医院哪家男科医院好
友情链接: 最全的凯里美食攻略
6