`
hereson2
  • 浏览: 451240 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用VB制作IE工具条自定义按钮

阅读更多
Private Sub UserControl_Resize()
UserControl.Width = 540
UserControl.Height = 540
Image1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub
'将属性值写到存储器
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty(“ButtonText",
m_ButtonText, m_def_ButtonText)
Call PropBag.WriteProperty(“Exec", m_Exec,
m_def_Exec)
Call PropBag.WriteProperty(“HotIcon",
m_HotIcon, m_def_HotIcon)
Call PropBag.WriteProperty(“Icon",
m_Icon, m_def_Icon)
Call PropBag.WriteProperty(“MenuText",
m_MenuText, m_def_MenuText)
Call PropBag.WriteProperty(“MenuStatusBar",
m_MenuStatusBar, m_def_MenuStatusBar)
Call PropBag.WriteProperty(“GUID",m_GUID,
m_def_GUID)
End Sub
’获取按钮文本
Public Property Get ButtonText() As String
ButtonText = m_ButtonText
End Property
’设置按钮文本
Public Property Let ButtonText(ByVal New_ButtonText As String)
m_ButtonText = New_ButtonText
PropertyChanged “ButtonText"
End Property
’获取当前按钮执行目标
Public Property Get Exec() As String
Exec = m_Exec
End Property
’设置当前按钮执行目标
Public Property Let Exec(ByVal New_Exec As String)
m_Exec = New_Exec
PropertyChanged “Exec"
End Property
’获取鼠标移上按钮时显示的图标
Public Property Get HotIcon() As String
HotIcon = m_HotIcon
End Property
’设置鼠标移上按钮时显示的图标
Public Property Let HotIcon(ByVal New_HotIcon As String)
m_HotIcon = New_HotIcon
PropertyChanged “HotIcon"
End Property
’获取按钮正常显示的图标
Public Property Get Icon() As String
Icon = m_Icon
End Property
’设置按钮正常显示的图标
Public Property Let Icon(ByVal New_Icon As String)
m_Icon = New_Icon
PropertyChanged “Icon"
End Property
’获取菜单项显示文本
Public Property Get MenuText() As String
MenuText = m_MenuText
End Property
’设置菜单项显示文本
Public Property Let MenuText(ByVal New_MenuText As String)
m_MenuText = New_MenuText
PropertyChanged “MenuText"
End Property
’获取菜单项注释文本
Public Property Get MenuStatusBar() As String
MenuStatusBar = m_MenuStatusBar
End Property
’设置菜单项注释文本
Public Property Let MenuStatusBar(ByValNew_Menu
StatusBar As String)
m_MenuStatusBar = New_MenuStatusBar
PropertyChanged “MenuStatusBar"
End Property
Public Property Get GUID() As String
GUID = m_GUID
End Property
Public Property Let GUID(ByVal New_GUID As String)
m_GUID = New_GUID
PropertyChanged “GUID"
End Property
’显示“关于”对话框
Public Sub ShowAboutBox()
frmAbout.Show vbModal
Unload frmAbout
Set frmAbout = Nothing
End Sub
该控件提供了 7 个属性和2 个方法。
控件的属性:
●GUID:一个在注册表唯一标识应用软件的数字序列,共36位;
●ButtonText:按钮上显示的文本;
●Exec:按钮执行的目标,为可执行文件或超文本链接等;
●HotIcon:鼠标移上按钮时显示的图标,取自 EXE 文件或 DLL 文件;
●Icon:按钮正常显示的图标,取自 EXE 文件或 DLL 文件;
●MenuText:在 IE “工具”菜单中显示的菜单项;
●MenuStatusBar:IE“工具”菜单项的解释,显示在底部的状态条上。
控件的方法:
●AddBtn2IEtoolbar:添加自定义按钮;
●DelBtnFromIEtoolbar:删除自定义按钮。
使用方法(以VB为例)
在 VB 中,首先将该用户控件加入“部件”列表中,然后把该控件从“工具箱”拖放到 EXE 工程窗体上,再在窗体上放两个命令按钮,命名为 cmdADD 和 cmdDel,键入以下代码:
Option Explicit
'该 GUID 号码用特殊工具产生
Const theGUID = “{3FA4FB86-E43A-11D4-B3DD-00E006E25C0B}"
Private Sub cmdAdd_Click() '添加按钮
AddButton1.Guid = theGUID
AddButton1.ButtonText = “控件"
AddButton1.Exec = “http://why100000.at.
china.com"
AddButton1.HotIcon = “C:\Add2IE Toolbar\Add2IEToolbar.exe,101"
AddButton1.Icon = “C:\Add2IE Toolbar\Add2IEToolbar.exe,102"
AddButton1.MenuText = “测试控件"
AddButton1.MenuStatusBar = “测试我制作的 ActiveX 控件"
AddButton1.AddBtn2IEtoolbar '执行
End Sub
Private Sub cmdDel_Click() '删除按钮
AddButton1.Guid = theGUID
AddButton1.DelBtnFromIEtoolbar
End Sub
以上代码中,GUID 号可以用 VC++ 6.0 提供的 GUID 生成器工具产生。方法是:运行 VC++ 6.0,打开一个工程,在“Project\Add to Project\Components and Controls\Visual C++ Components\GUID Generator”中,按“Insert”按钮,确定后,先选第 4 项“Registry Format”,再按“Copy”按钮,GUID 生成器就将一个新产生的 GUID 号拷贝到了剪贴板上。
按钮的图标包含在 C:\Add2IE Toolbar\Add2IEToolbar.exe 文件中,101 和 102 是它们的顺序号。按 cmdAdd 按钮,然后打开 IE 浏览器,就会看到 IE 工具条上添加的自定义按钮了。
现在,有许多软件安装后会在 IE 浏览器的工具条上添加一个自定义按钮,为用户运行程序提供了方便,如“网络蚂蚁”、“金山词霸2000”等等。实际上添加这个自定义按钮并不难,只要找到了它在注册表中的位置和有关参数,通过手工或程序都可以轻易完成。而最方便的办法就是调用现成的 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 文本浏览器”中获得。
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\"
’把字符串值存入注册表
Private Sub SaveString(hKey As Long, strPath As String, strValue As String, strdata As String)
Dim keyhand As Long
Dim r As Long
r=RegCreateKey(hKey, strPath, keyhand)
r=RegSetValueEx(keyhand, strValue, 0,REG_SZ, ByVal strdata, Len(strdata))
r=RegCloseKey(keyhand)
End Sub
’从注册表中删除字符串值
Private Function DeleteValue(ByVal hKey As Long, ByVal strPath As String, ByVal strValue As String)
Dim r, keyhand As Long
r = RegOpenKey(hKey, strPath, keyhand)
r = RegDeleteValue(keyhand, strValue)
r = RegCloseKey(keyhand)
End Function
'把设置写入注册表,定义按钮
Public Sub AddBtn2IEtoolbar()
Dim subKey As String
subKey = subKey0 & Trim(GUID) & “\"
Call SaveString(hKey, subKey, “ButtonText", ButtonText)
Call SaveString(hKey, subKey,“Clsid",
“{1FBA04EE-3024-11D2-8F1F0000F87ABD16}")
Call SaveString(hKey, subKey, “Default Visible", “Yes")
Call SaveString(hKey, subKey, “Exec", Exec)
Call SaveString(hKey, subKey, “HotIcon", HotIcon)
Call SaveString(hKey, subKey, “Icon", Icon)
Call SaveString(hKey, subKey, “MenuStatusBar",
MenuStatusBar)
Call SaveString(hKey,subKey,“MenuText", MenuText)End Sub
'从注册表中删除自定义按钮
Public Sub DelBtnFromIEtoolbar()
Dim subKey As String
subKey = subKey0 & Trim(GUID) & “\"
Call DeleteValue(hKey, subKey, “ButtonText")
Call DeleteValue(hKey, subKey, “Clsid")
Call DeleteValue(hKey, subKey, “Default Visible")
Call DeleteValue(hKey, subKey, “Exec")
Call DeleteValue(hKey, subKey, “HotIcon")
Call DeleteValue(hKey, subKey, “Icon")
Call DeleteValue(hKey, subKey, “MenuStatusBar")
Call DeleteValue(hKey, subKey, “MenuText")
End Sub
'初始化控件属性
Private Sub UserControl_InitProperties()
m_ButtonText = m_def_ButtonText
m_Exec = m_def_Exec
m_HotIcon = m_def_HotIcon
m_Icon = m_def_Icon
m_MenuText = m_def_MenuText
m_MenuStatusBar = m_def_MenuStatusBar
m_GUID = m_def_GUID
End Sub
'从存储器中加载属性值
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
m_ButtonText = PropBag.ReadProperty
(“ButtonText", m_def_ButtonText)
m_Exec = PropBag.ReadProperty(“Exec",
m_def_Exec)
m_HotIcon = PropBag.ReadProperty(“HotIcon",
m_def_HotIcon)
m_Icon = PropBag.ReadProperty(“Icon",
m_def_Icon)
m_MenuText = PropBag.ReadProperty
(“MenuText",m_def_MenuText)
m_MenuStatusBar =PropBag.ReadProperty
(“MenuStatusBar", m_def_MenuStatusBar)
m_GUID =PropBag.ReadProperty(“GUID",
m_def_GUID)
End Sub
分享到:
评论

相关推荐

    VB编程资源大全(控件 窗体1)

    (30KB) 58,sclcon.zip 不知道你对ie里背景的水印属性有没有印象,现在你在窗体里也可以实现了(162KB) 59,submenu.zip 可以在VB中自定义弹出式子菜单(8KB) 60,zlibtool.zip 较好的一个有进度显示...

    VB编程资源大全(控件 窗体2)

    (30KB) 58,sclcon.zip 不知道你对ie里背景的水印属性有没有印象,现在你在窗体里也可以实现了(162KB) 59,submenu.zip 可以在VB中自定义弹出式子菜单(8KB) 60,zlibtool.zip 较好的一个有进度显示...

    IE WebBrowser编程技巧

    往IE中嵌入工具条 阻断弹出式广告的BHO 自动填表的IE面板插件 使用Delphi开发IE按钮扩展 使用Delphi开发IE右键菜单扩展 IE异步可插入协议扩展 Delphi开发IE下载扩展 创建3721样式的Google搜索扩展 HTML代码过滤技术 ...

    VB编程资源大全(控件 其它3)

    整个压缩文件才277k,还包括一个示例程序和源代码(280KB) 60,s013_ariadtbar.ZIP 用这个控件做工具条不须象VB自带的要用到ImageList控件,同时还有许多很方便的功能,慢慢去发掘吧(154KB) 61,s012.ZIP ...

    VB编程资源大全(控件 其它1)

    整个压缩文件才277k,还包括一个示例程序和源代码(280KB) 60,s013_ariadtbar.ZIP 用这个控件做工具条不须象VB自带的要用到ImageList控件,同时还有许多很方便的功能,慢慢去发掘吧(154KB) 61,s012.ZIP ...

    网际畅游 MyIE 3.0 源代码

    使用工具条的按钮:工具条上有两个按钮:代理服务器和web代理。使用它们可以方便的选择和使用代理,效果和用菜单一样。 你刚用过的代理将作为缺省的设置,当你直接按按钮时就将使用这个缺省设置的代理了。 编辑...

    VB编程资源大全(控件 其它2)

    整个压缩文件才277k,还包括一个示例程序和源代码(280KB) 60,s013_ariadtbar.ZIP 用这个控件做工具条不须象VB自带的要用到ImageList控件,同时还有许多很方便的功能,慢慢去发掘吧(154KB) 61,s012.ZIP ...

    asp.net知识库

    .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的组件!(终结MasterPages技术) 在ASP.NET 1.1下实现模板化站点的新思路 在ASP.Net中两种利用CSS实现多界面的方法 用于弹出ModalDialog进行数据选择的控件 ...

    Visual Graph开发

    三、如果在互联网(IE)使用,需要把用到的文件打包成CAB文件,可参考web\makecab.bat里面的内容,自行增加要打包的文件,然后运行这个批处理程序,打包后的CAB文件的使用方法参见web\design.htm,自行打包的CAB文件在...

    vc++ 应用源码包_1

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_2

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_6

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_3

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_5

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 开发实例源码包

    7:在IE工具栏上加按钮,可以直接拖动连接到按钮上下载. 8:注册采用激活方式. 9:采用Messenger的弹出滑动消息提示框. 10:下载管理,虚拟文件夹. 11:自动ping. 12:连接到搜索引擎. 13:自动报告bug,建议等. 14:宏功能. 15...

    Microdraw图形控件开发版本-试用版

    13. 显示或者隐藏工具条中的指定按钮; 支持事件 1. 支持鼠标移动、点击、双击及滚轮操作事件; 2. 支持键盘的按下、抬起事件; 3. 支持显示绘制事件,用户可以自定义元素显示样式; 4. 支持多种缺省工具操作事件...

    Visual C++ 编程资源大全(源码 控件)

    CButtonST.zip 只要你的程序中使用按钮,这个类库就使你可以轻松做出图文并茂的按钮来(133KB)<END><br>10,hoverbut.zip 这个类库是对鼠标敏感的按纽,你用它可以做出象Office助手提示选项那样的东东来(24KB)...

    1345个易语言模块

    1345个易语言模块,易语言模块大集合,够你用的啦 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建....

Global site tag (gtag.js) - Google Analytics