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

2016-02-19 16:32 26 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是用VB制作IE工具条自定义按钮,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

现在,有许多软件安装后会在IE浏览器的工具条上添加一个自定义按钮,为用户运行程序提供了方便,如“网络蚂蚁”、“金山词霸2000”等等。实际上添加这个自定义按钮并不难,只要找到了它在注册表中的位置和有关参数,通过手工或程序都可以轻易完成。而最方便的办法就是调用现成的ActiveX控件来完成这个功能,但Windows似乎没有提供这种控件。下面介绍如何开发和使用这种自定义控件。
  实现方法
  要添加这种自定义按钮,需要在Windows注册表的HKEY_LOCAL_MACHINESoftwareMicrosoftInternetExplorerExtensions子键下建立一个GUID项,然后在注册表的右栏建立相应的参数并赋值。这些参数及其含义如下:
  ●ButtonText:自定义按钮上显示的文本字符串;
  ●Clsid:IE工具条的类标识码,为“{1FBA04EE-3024-11D2-8F1F0000F87ABD16}”;
  ●DefaultVisible:自定义按钮是否可见,一般为“Yes";
  ●Exec:自定义按钮执行的目标,为可执行文件或超文本链接等;
  ●HotIcon:鼠标移上按钮时显示的图标,一般取自EXE文件或DLL文件;
  ●Icon:按钮正常显示的图标,一般取自EXE文件或DLL文件;
  ●MenuText:在IE的“工具”菜单中显示的菜单项;
  ●MenuStatusBar:IE的“工具”菜单项的注释,在状态条上显示。
  制作过程
  在VB5.0/6.0下建立新的“ActiveX控件”工程。
  首先,给控件AddButton的Picture属性添加一个微型Icon图片,这样当使用该控件时,会在控件工具箱上显示这个小图标。然后,再在设计窗口上放置一个image控件,给它也设置一个小图片,使用该控件时,会在其Form上显示该控件的外观。最后,调出代码编辑窗口,在该窗口中键入以下代码,其中API函数调用的代码可以直接从“API文本浏览器”中获得。
  OptionExplicit
  ……'DefaultPropertyValues
  ……'PropertyVariables
  '定义常量
  ConstHKEY_LOCAL_MACHINE=&H80000002
  ConstREG_SZ=1
  '声明存取注册表的API函数
  PrivateDeclareFunctionRegCloseKeyLib“advapi32.dll"(ByValhKeyAsLong)AsLong
  PrivateDeclareFunctionRegCreateKeyLib“advapi32.dll"Alias“RegCreateKeyA"(ByValhKeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)AsLong
  PrivateDeclareFunctionRegDeleteValueLib“advapi32.dll"Alias“RegDeleteValueA"(ByValhKeyAsLong,ByVallpValueNameAsString)AsLong
  PrivateDeclareFunctionRegOpenKeyLib“advapi32.dll"Alias“RegOpenKeyA"(ByValhKeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)AsLong
  PrivateDeclareFunctionRegSetValueExLib“advapi32.dll"Alias“RegSetValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByValReservedAsLong,ByValdwTypeAsLong,lpDataAsAny,ByValcbDataAsLong)AsLong
  '定义注册表中的主键、子键
  ConsthKey=HKEY_LOCAL_MACHINE
  ConstsubKey0=“SoftwareMicrosoftInternetExplorerExtensions"
  '把字符串值存入注册表
  PrivateSubSaveString(hKeyAsLong,strPathAsString,strValueAsString,strdataAsString)
  DimkeyhandAsLong
  DimrAsLong
  r=RegCreateKey(hKey,strPath,keyhand)
  r=RegSetValueEx(keyhand,strValue,0,REG_SZ,ByValstrdata,Len(strdata))
  r=RegCloseKey(keyhand)
  EndSub
  '从注册表中删除字符串值
  PrivateFunctionDeleteValue(ByValhKeyAsLong,ByValstrPathAsString,ByValstrValueAsString)
  Dimr,keyhandAsLong
  r=RegOpenKey(hKey,strPath,keyhand)
  r=RegDeleteValue(keyhand,strValue)
  r=RegCloseKey(keyhand)
  EndFunction
  '把设置写入注册表,定义按钮
  PublicSubAddBtn2IEtoolbar()
  DimsubKeyAsString
  subKey=subKey0&Trim(GUID)&“"
  CallSaveString(hKey,subKey,“ButtonText",ButtonText)
  CallSaveString(hKey,subKey,“Clsid",
  “{1FBA04EE-3024-11D2-8F1F0000F87ABD16}")
  CallSaveString(hKey,subKey,“DefaultVisible",“Yes")
  CallSaveString(hKey,subKey,“Exec",Exec)
  CallSaveString(hKey,subKey,“HotIcon",HotIcon)
  CallSaveString(hKey,subKey,“Icon",Icon)
  CallSaveString(hKey,subKey,“MenuStatusBar",
  MenuStatusBar)
  CallSaveString(hKey,subKey,“MenuText",MenuText)EndSub
  '从注册表中删除自定义按钮
  PublicSubDelBtnFromIEtoolbar()
  DimsubKeyAsString
  subKey=subKey0&Trim(GUID)&“"
  CallDeleteValue(hKey,subKey,“ButtonText")
  CallDeleteValue(hKey,subKey,“Clsid")
  CallDeleteValue(hKey,subKey,“DefaultVisible")
  CallDeleteValue(hKey,subKey,“Exec")
  CallDeleteValue(hKey,subKey,“HotIcon")
  CallDeleteValue(hKey,subKey,“Icon")
  CallDeleteValue(hKey,subKey,“MenuStatusBar")
  CallDeleteValue(hKey,subKey,“MenuText")
  EndSub
  '初始化控件属性
  PrivateSubUserControl_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
  EndSub
  '从存储器中加载属性值
  PrivateSubUserControl_ReadProperties(PropBagAsPropertyBag)
  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)
  EndSub->

来源:http://www.tulaoshi.com/n/20160219/1612363.html

延伸阅读
标签: Web开发
//by zdzhuo  html head script type="text/javascript" var d = document; var mk = new Array( 'red','span style="color:red;"', '/red','/span', 'big','span style="font-size:22pt;"', '/big','/span', 'zhuo','span style="font-style:oblique;"', '/zhuo...
标签: windows系统
Win8如何自定义电源按钮   Win8自定义电源按钮的方法如下: 1、系统桌面下(非metro界面)同时按住键盘上Windows 和X 键打开系统菜单,点击选择控制面板。 2、在控制面板里面点击右上角的查看方式,选择为小图标,在调整计算机的设置下选择电源选项。 3、在电源选项菜单左侧,点击选择电源按钮的功能。 4、...
在Visual C++自动生成的MFC框架应用程序中,当浮动工具条被拖离主框架窗口后,一般都会在工具条的右上角有一个"关闭"按钮,应该说这个按钮完全是按照Windows应用程序的用户界面(UI)设计规范而设计的,也就是说所有的窗口都应该有一个地方让用户可以关闭这个窗口。但是有的开发人员偏偏提出来不想要这个"关闭"按钮。本实例通过自定一个扩...
怎么用adobe自定义字体   怎么用adobe自定义字体 Faces项目介绍 Adobe首席产品设计师Lee Brimelow几周前曾简单展示过该公司的全新项目,代号Faces,该项目可以让用户创建属于自己的个性化字体。从文末的视频中可以看到,Faces使用非常简单,用户只需拖动滑块就可以从现有标准字体的基础上,按照自己的喜好设计新字体。 ...
用VB使用MSCOMM、WINSOCK等控件实现数据传输都方便,但这些控件提供的方法都只能传输字符串、Byte数组等,没有提供用户自定义数据结构直接传输的方法。但如果解决了用户自定义数据结构与Byte数组的互相转换,就自然可以实现用户自定义数据结构的传输了。 目前我们使用的转换方法主要是以下两种方法: (1) 依靠磁盘文件实现转换...

经验教程

281

收藏

12
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部