当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

用vc++对ie进行修改操作

    很多软件安装以后都会在IE浏览器的工具栏上添加一个自己的启动按钮,只要点击该按钮就可以启动自己的程序,比较典型的软件有网络蚂蚁、金山词霸、网际快车(FlashGet)等等。如图1所示,“FlashGet”按钮就是“网际快车”安装之后添加的按钮,这个按钮能方便用户启动程序,而不用从开始菜单中启动应用程序,节省了很多时间。

    这么好的功能,我们的程序当然也应该有!需要说明的是,IE4.0以下的版本并不支持该功能,直到IE5.0发布,才使该项技术大众化。那么怎么实现这个功能呢?下面让我们分析一下技术原理。IE启动的时候,它会去读取Windows注册表中相应的数据,如果该键值下面有数据并且是正确的,那么它将正确的显示出来。如果没有数据或者有数据但数据是非法的,那么他将不以理会。所以,实现该功能并不需要复杂的技术,仅仅是处理注册表而已!

    下面我们先看看这些有用的数据到底写在什么地方。运行RegEdit程序,打开HKEY_LOCAL_MACHINE SOFTWAREMicrosoftInternet ExplorerExtensions主键,并找到{D6E814A0-E0C5-11d4-8D29-0050BA6940E3}子键。该子键的具体含义我先不作解释,后文中将详细介绍。图2就是FlashGet在IE工具栏上显示按钮的奥秘所在其中,是显示在按钮上的文字,“FlashGet”就是显示在IE工具栏按钮上的文本。

    是一个GUID,标明FlashGet的类。

    按钮默认是否可见,我们当然希望按钮可见了,所以取值为“Yes”。

    可执行文件的路径及其文件名,即当点击按钮时,要执行的文件。

    顾名思义,就是当鼠标移动在该按钮上的时候所显示的图标,我们应该有这个经验,就是当鼠标移动到图标上的时候,图标的颜色会发生变化,就是这个意思。

 就是按钮所显示的图标。当鼠标没有移动上去的时候将显示图标。

  是菜单在状态条的提示。

  与按钮相应的”工具“菜单里的菜单项名称。

  在动手用VC++来完成这些工作之前,我们先来介绍一些预备知识一、上文中我们曾经提到过GUID.GUID(Globally Unique IDentifier),全球唯一标识符,是一个128位的随机数,是通过计算机的网卡和计算机的时间来共同产生的,所以几乎不会产生重复数。从理论上讲,如果一台机器上每秒产生10,000,000个GUID,那么也可以保证3240年以上不重复。既然是随机数,当然就不能保证绝对无重复,但我们已经可以看出,如果要重复的话,那概率是多么的小!

  手工构造这么一个128的随机数是相当麻烦的,所以VC++提供了两个工具来产生GUID.一个是UUIDGen.exe,这是一个命令行程序,所以我并不喜欢。另一个是GUIDGen.exe(如图3所示,你可以在Visual Studio安装目录的CommonTools中找到),该程序是一个基于对话框的程序,用它来产生GUID十分方便,所以我非常爱用它而不用UUIDGen.Exe.

  二、VC中的注册表操作函数主要要用到的注册表操作函数有RegCreateKeyEx()、RegSetValueEx()和RegOpenKeyEx()等。RegCreateKeyEx()的作用是创建一个键值,如果该键值存在的话,那么则打开它。RegSetValueEx()的作用是对某个特定的键值进行赋值。RegOpenKeyEx()的作用是打开一个键值。具体的函数参数请参考MSDN,这里就不再赘述了。

  下面我们以一个SDI为例演示函数的使用,为了与下文统一起来,请把它建立在”C:Test“.假设我们已经建立一个SDI应用程序Test并给CTestView添加了一个成员函数WriteReg().我们将在该函数中实现在IE浏览器的工具菜单上和IE的上下文菜单中添加我们的菜单,并实现响应菜单消息。在实现该函数之前,我们先用GUIDGen产生两个GUID:{32204547-1C47-11d5-A413-00A00CC191CF}和{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}.

 

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接