打开注册表:HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt
添加“DownLoader.exe”项,在默认中填入 " E:/GetUrl.htm"
以上可以用VC代码实现,不再赘述。
其中 E:/GetUrl.htm 里的内容如下:
Sub AddLink(Url,Info,Location)
On Error Resume Next
if Url <> "" then
if Info = "" then
Info = " unknown "
end if
if Len (Info) > 1000 then
Info = Left (Info, 1000 )
end if
DownloadInfo = Url + " ^ " + Location
set shell = CreateObject ( " Wscript.Shell " )
shell.Run " F:codingTestingVCDownLoader.exe " + DownloadInfo
end if
end sub
Sub OnContextMenu()
set srcEvent = external.menuArguments.event
set srcLocation = external.menuArguments.location
set EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.clientX, srcEvent.clientY )
if srcEvent.type = " MenuExtAnchor " then
set srcAnchor = EventElement
do until TypeName (srcAnchor) = " HTMLAnchorElement "
set srcAnchor = srcAnchor.parentElement
Loop
Call AddLink(srcAnchor.href,srcAnchor.innerText,srcLocation)
elseif srcEvent.type = " MenuExtImage " then
if TypeName (EventElement) = " HTMLAreaElement " then
Call AddLink(EventElement.href,EventElement.Alt,srcLocation)
else
set srcImage = EventElement
set srcAnchor = srcImage.parentElement
do until TypeName (srcAnchor) = " HTMLAnchorElement "
set srcAnchor = srcAnchor.parentElement
if TypeName (srcAnchor) = " Nothing " then
call AddLink(srcImage.href,srcImage.Alt,srcLocation)
exit sub
end if
Loop
Call AddLink(srcAnchor.href,srcImage.Alt,srcLocation)
end if
elseif srcEvent.type = " MenuExtUnknown " then
set srcAnchor = EventElement
do until TypeName (srcAnchor) = " HTMLAnchorElement "
set srcAnchor = srcAnchor.parentElement
if TypeName (srcAnchor) = " Nothing " then
Call AddLink(EventElement.href,EventElement.innerText,srcLocation)
exit sub
end if
Loop
Call AddLink(srcAnchor.href,srcAnchor.innerText,srcLocation)
elseif 1 = 1 then
MsgBox ( " Unknown Event Source "" " + srcEvent.type + " "" " + vbCrLf + " Please send description of error to yourEmail@ " )
end if
end sub
call OnContextMenu()
</ script >
最重要的是这几句:
DownloadInfo = Url + "^" + Location
set shell = CreateObject("Wscript.Shell")
shell.Run "F:/coding/Testing/VC/DownLoader.exe " + DownloadInfo
其中DownloadInfo是一个字符串,作为DownLoader.exe 运行参数。包括下载地址和引用地址(还可以添加其他信息)。它们是以“^”做分割符。
可以在DownLoader.exe 中用以下方式取出参数。
//以^切割字符串strUrl获取分割字符的头部
CString getSplitHeader(CString strUrl)
{
return strUrl.Right(strUrl.GetLength()-strUrl.ReverseFind('^')-1);
}
//以^切割字符串strUrl获取分割字符的尾部
CString getSplitFooter(CString strUrl)
{
return strUrl.Left(strUrl.ReverseFind('^'));
}
ok。重启你的IE.