打开注册表: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.