如何将我的程序嵌入IE的工具栏当中就象金山词霸或网络码蚁之类的软件
如何将我的程序嵌入IE的工具栏当中就象金山词霸或网络码蚁之类的软件 问题点数:0、回复次数:22Top
1 楼Laney(6吨大笨猫)回复于 2003-02-04 08:04:47 得分 0
改注册表Top
2 楼sbamdanb01(a)回复于 2003-02-04 08:07:48 得分 0
楼上兄弟改注册表的哪个地方?Top
3 楼mjcom(不明飞行物)回复于 2003-02-04 11:08:26 得分 0
upTop
4 楼fafb(咿呀咿呀呦)回复于 2003-02-04 11:10:59 得分 0
gzTop
5 楼earthpea(问莲根,有丝多少?莲心知为谁苦?)回复于 2003-02-04 11:15:39 得分 0
你看一下你的注册表的这里:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions
在这里增加的,都是后来出现在工具栏上的程序了,如金山、flashget等Top
6 楼earthpea(问莲根,有丝多少?莲心知为谁苦?)回复于 2003-02-04 11:18:49 得分 0
还要注意以下两个主键(以我的计算机为例)
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions
HKEY_USERS\S-1-5-21-448539723-839522115-961843523-500\Software\Microsoft\Internet Explorer\Extensions\CmdMapping
Top
7 楼verybelial(顶级狙击手)回复于 2003-02-04 11:25:57 得分 0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions
Top
8 楼zhangchaokun(lywin)回复于 2003-02-04 11:39:05 得分 0
up.Top
9 楼sippey(sippey)回复于 2003-02-04 12:41:35 得分 0
注册表,还需要几个图标Top
10 楼shawls(VB Fan)(QQ:9181729)回复于 2003-02-05 20:24:28 得分 0
[名称] 用VB制作IE工具条自定义按钮
[数据来源] 未知
[内容简介]
用VB制作IE工具条自定义按钮
作者:西安市含光门外中原小区1号楼3单元702(710068) 张庆
[源代码内容]
现在,有许多软件安装后会在 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 文本浏览器"中获得。
'注意: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\"
'把字符串值存入注册表
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
Top
11 楼gang75(*^&^*)回复于 2003-02-05 22:33:59 得分 0
sjTop
12 楼_Bullet_(天流客)回复于 2003-02-05 22:47:01 得分 0
高手Top
13 楼tangsix(chewme)回复于 2003-02-07 10:37:54 得分 0
asTop
14 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2003-02-07 21:53:13 得分 0
如何添加IE右键菜单项以及任务栏按钮:
http://www.applevb.com/art/ie_menu.txtTop
15 楼richardxulf(鸡蛋)回复于 2003-02-08 09:05:58 得分 0
给我一个地址,我发源代码给你,在自己的IE工具栏里加上快捷按钮。Top
16 楼corner(棒子)回复于 2003-02-08 12:52:19 得分 0
belter@sina.com
也发给我一份吧!Top
17 楼chinareny(编程浪子)回复于 2003-02-08 13:54:36 得分 0
markTop
18 楼linchuanzai(嘿菜)回复于 2003-02-08 18:07:04 得分 0
linchuanzai@163.comTop
19 楼JennyVenus()回复于 2003-02-08 18:38:59 得分 0
基本上来说,添加任务栏按钮只需要修改注册表就可以实现。通过修改注册表来实现添加按钮的步骤如下:
1、建立一个GUID。
2、打开注册表编辑器,转到HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions部分,
在其下添加一个新的项,名称为 <Your GUID> ,Your GUID为你刚建立的GUID。
3、在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一个新的String类型的值,名称为HotIcon,该值定义当按钮具有热点时的图标,它的一般类型为:
包含图标的文件全路径名,图标索引,例如:
C:\PROGRA~1\KINGSOFT\XDICT\ieplugin.DLL,208
4、在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一个新的String类型的值,名称为Icon,该值定义当按钮的图标,它的一般类型为:
图标文件全路径名,图标索引
5、在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一个新的String类型的值,名称为ButtonText,该值定义按钮的ToolTip文本。
6、在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一个新的String类型的值,名称为Default Visible,该值定义按钮是否可见,如果是,则该值设定
为"Yes",否则设定为"No"。
7、在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一个新的String类型的值,名称为Clsid,将该值设定为{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
8、在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一个新的String类型的值,名称为Exec,该值定义点击按钮后运行的文件的全路径名称,例如:
c:\program files\samples\net.exe
例如NetAnts的按钮注册表项的内容就是象下面这样:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{57E91B47-F40A-11D1-B792-444553540000}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"Default Visible"="Yes"
"HotIcon"="C:\\PROGRA~1\\NETANTS\\NetAnts.exe,1001"
"Icon"="C:\\PROGRA~1\\NETANTS\\NetAnts.exe,1000"
"Exec"="C:\\PROGRA~1\\NETANTS\\NetAnts.exe"
"ButtonText"="NetAnts"
"MenuText"="&NetAnts"
"MenuStatusBar"="Launch NetAnts"
当点击NetAnts按钮时就会运行Netants。上面的注册表项中下面的两项:MenuText项添加一个菜单项到菜单
的“工具”栏中,MenuStatusBar项定义当光标移动到添加的菜单栏上后显示在状态栏中提示文本。此外在注册表的
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>下还可以添加一个名称为
MenuCustomize的字符串类型值,将该值设定为"Help"将使菜单项出现在“帮助”菜单栏中,否则出现在“工具”栏中。
当然,我们不会满足于只是添加一个按钮,执行一个程序,我们希望能够获得当用户点击按钮时能够操控当前
页面,在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一个新的String类型的值,名称设定为一个htm文件的全路径名,同前面介绍的添加鼠标右键菜单一样,在点击
按钮后IE会调用该文件,在文件中通过设定VBScript访问external对象的menuArguments属性就可以获得浏览器中的
页面。例如我们将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>\VBScript
的值设定为c:\program files\samp.htm,然后在c:\program files下建立一个名为Samp.htm的文件,在文件中输入以下
脚本内容:
<script language="VBScript">
Set objNetSamp=CreateObject("IEContextMenu.IEMenu1")
userURL=external.menuArguments.location.href
Call objNetSamp.AddUrl(userURL,"")
</script>
打开IE浏览器,点击新建按钮,就会弹出对话框显示当前页面的URL。注意该项同前面设定的Exec项不能够同时使用。
最后,对于按钮图标,IE需要两种尺寸的图标:20x20和16x16的,前者用于正常状态下的显示,后者用于在全屏幕
下的显示,所以上面HotIcon和Icon指向的图标资源应该是三个图标的组合,这三个图标的规格如下:
16x16 16-色 icon (必须)
20x20 16-色 icon (可选)
20x20 256-色 icon (必须)
在设计图标时,256色图标应该使用Windows半色调调色板,而16色图标使用Windows 16色调色板。Top
20 楼gemgama(gemgama)回复于 2003-06-18 20:33:28 得分 0
upTop
21 楼wtty9822(VB<————我的眼里只有你)回复于 2003-06-18 21:35:59 得分 0
收藏Top
22 楼yinbin(yinbin)回复于 2003-06-18 21:48:51 得分 0
当然,修改注册表是最好的办法,Top
相关问题
- 如何将自己的程序加入到ie的工具栏,象netants,金山词霸那样?
- 如何插入一个按钮到ie工具栏,连接我的程序,如netant、金山词霸
- 如何写出在IE上内嵌的如金山词霸、flashget等的工具栏
- 如何在程序中嵌入IE控件及其工具栏?
- 高分求教,我的窗口嵌入到IE的工具栏中,
- 很多软件(比如网络蚂蚁和金山词霸)安装后会在IE的工具栏上增加一个按钮用来启动这个软件,请问这是如何实现的?
- 金山词霸是怎样在IE和Word中嵌入工具条的?象3721之类的控件是怎样实现自动安装的...
- 给IE加条工具栏
- 关于IE工具栏
- 金山词霸2002和金山毒霸2001都用了一种他们所谓的嵌入技术,比如在offic中,运行word,启动时的版权页右上角会出现一个毒霸的动画,进入后在工具栏上会有一个词霸的按钮,按下后无须运行词霸即可查单词,请大家介绍一下这种技术




