现在,有许多软件安装后会在 IE 浏览器的工具条上添加一个自定义按钮,为用户运行程序提供了方便,如“网络蚂蚁”、“金山词霸”等等。实际上添加这个自定义按钮并不难,只要找到了它在注册表中的位置和有关参数,通过手工或程序都可以轻易完成。而最方便的办法就是调用现成的 ActiveX 控件来完成这个功能,但 Windows 似乎没有提供这种控件。下面介绍如何开发和使用这种自定义控件。 实现方法 要添加这种自定义按钮,需要在 Windows 注册表的HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions 子键下建立一个 GUID 项,然后在注册表的右栏建立相应的参数并赋值。这些参数及其含义如下: ButtonText:自定义按钮上显示的文本字符串; Clsid:IE 工具条的类标识码,为“{1FBA04EE-3024-11D2-8F1F0000F87ABD16}”; Default Visible:自定义按钮是否可见,一般为 “Yes"; Exec:自定义按钮执行的目标,为可执行文件或超文本链接等; HotIcon:鼠标移上按钮时显示的图标,一般取自 EXE 文件或 DLL 文件; Icon:按钮正常显示的图标,一般取自 EXE 文件或 DLL 文件; MenuText:在 IE 的“工具”菜单中显示的菜单项; MenuStatusBar:IE的“工具”菜单项的注释,在状态条上显示。
制作过程 在 VB 5.0/6.0 下建立新的“ActiveX 控件”工程。 首先,给控件 AddButton 的 Picture 属性添加一个微型 Icon 图片,这样当使用该控件时,会在控件工具箱上显示这个小图标。然后,再在设计窗口上放置一个 image 控件,给它也设置一个小图片,使用该控件时,会在其 Form 上显示该控件的外观。最后,调出代码编辑窗口,在该窗口中键入以下代码,其中 API 函数调用的代码可以直接从“API 文本浏览器”中获得。
'注意:Guid的值是特定的,才可以获取 Option Explicit ……'Default Property Values ……'Property Variables '定义常量 Const HKEY_LOCAL_MACHINE = &H80000002 Const REG_SZ = 1
'声明存取注册表的 API 函数 Private Declare Function RegCloseKey Lib “advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib “advapi32.dll" Alias “RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteValue Lib “advapi32.dll" Alias “RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegOpenKey Lib “advapi32.dll" Alias “RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib “advapi32.dll" Alias “RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String,ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
'定义注册表中的主键、子键 Const hKey = HKEY_LOCAL_MACHINE Const subKey0=“Software\Microsoft\Internet Explorer\Extensions\"
|