注册表读写api函数声明:Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As LongPrivate Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As LongPrivate Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As LongPrivate Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As LongPrivate Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
这个很不好弄的,对初学者有些难: flashget是通过一个jc_catch.htm的文件进行动作的 打开hkcu_software_ms_ie_menuext,底下的“用flashget下载”后面的默认是一个jc_catch.htm文件 打开这个文件,是用vbs写的,前面两个sub,最底下call OnContextMenu() 可见OnContextMenu()是对网址进行分析的程序,里面有一句: Call AddLink(EventElement.href,EventElement.Alt),是调用addlink从而运行flashget,添加连接 addlink如下: Sub AddLink(Url,Info) On Error Resume Next set JetCarCatch=CreateObject("JetCar.Netscape") if err<>0 then MsgBox("FlashGet not properly installed!"+ vbCrLf+"Please install FlashGet again") else call JetCarCatch.AddUrl(Url, Info, external.menuArguments.document.Url) end if end sub 注意那个CreateObject("JetCar.Netscape"),就是建立一个"JetCar.Netscape"的对象,然后调用此对象的addurl方法 打开注册表编辑器HKEY_CLASS_ROOT,搜索JetCar.Netscape,察看它的CLSID是 {FB5DA724-162B-11D3-8B9B-AA70B4B0B524} 用搜索搜这个ID,就会找到以它为名的一个主键,底下的第一个键里有一个dll文件 [HKEY_CLASSES_ROOT\CLSID\{FB5DA724-162B-11D3-8B9B-AA70B4B0B524}\InprocServer32] @="E:\\plugin\\FLASHGET\\jccatch.dll" 这就是flashget的关键,这个dll里有运行flashget和添加url的最基本的代码 这就是flashget的原理
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\
就好了!
flashget是通过一个jc_catch.htm的文件进行动作的
打开hkcu_software_ms_ie_menuext,底下的“用flashget下载”后面的默认是一个jc_catch.htm文件
打开这个文件,是用vbs写的,前面两个sub,最底下call OnContextMenu()
可见OnContextMenu()是对网址进行分析的程序,里面有一句:
Call AddLink(EventElement.href,EventElement.Alt),是调用addlink从而运行flashget,添加连接
addlink如下:
Sub AddLink(Url,Info)
On Error Resume Next
set JetCarCatch=CreateObject("JetCar.Netscape")
if err<>0 then
MsgBox("FlashGet not properly installed!"+ vbCrLf+"Please install FlashGet again")
else
call JetCarCatch.AddUrl(Url, Info, external.menuArguments.document.Url)
end if
end sub
注意那个CreateObject("JetCar.Netscape"),就是建立一个"JetCar.Netscape"的对象,然后调用此对象的addurl方法
打开注册表编辑器HKEY_CLASS_ROOT,搜索JetCar.Netscape,察看它的CLSID是
{FB5DA724-162B-11D3-8B9B-AA70B4B0B524}
用搜索搜这个ID,就会找到以它为名的一个主键,底下的第一个键里有一个dll文件
[HKEY_CLASSES_ROOT\CLSID\{FB5DA724-162B-11D3-8B9B-AA70B4B0B524}\InprocServer32]
@="E:\\plugin\\FLASHGET\\jccatch.dll"
这就是flashget的关键,这个dll里有运行flashget和添加url的最基本的代码
这就是flashget的原理
请问如何,既打开我的工程又能获得IE地址,HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\GetURL 默认 reg_sz c:\getURL,我加了这个参考了FLASHGET,取的了IE地址,那我要修改什么内容能同时打开我的VB程序,又能获得IE地址
IE右键使用网际快车下载取到IE的地址的功能小子已经实现了,现在想问的是如何在我VB安装的时候自动去写注册表, 而不是手动的该
-----------------------
你的vb安装包可以试试用"小颖安装程序制作"(大概是这个名字,用过很久忘了)打包,可以指定安装的时候修改注册表的方法的,你要是嫌麻烦,它还可以指定安装的时候运行什么程序,你把修改注册表单独做一个exe,安装程序运行后运行一下就行了.希望对你有用