网际快车(Flasgget)和影音传送带(Nettransport)是目前国内非常有名的下载工具,也许我们的软件中需要调用它们进行下载,最简单的方式是直接用URL作为参数调用它们的主进程,因为这种软件通常都能够识别这种简单的命令行。但是如果要一次添加多个URL呢?这样做就不行了。由于这两个软件(通常这类软件都会)在Microsoft网页浏览器控件的右键菜单里添加下载单个URL与下载网页内所有URL两个右键菜单项,即浏览器可以启动它们下载单个URL和多个URL。那我们就来研究一下它们是怎么被浏览器启动的吧。
以网际快车为例,它是通过两个VBScript脚本来被启动的,下载单个URL的的脚本文件为jc_link.htm,下载网页中的所有URL的脚本文件为jc_all.htm。jc_link.htm的内容如下:
<script language="VBScript">
'Great thanks to Vladimir Romanov(Author of ReGet Pro)
'Download selected link
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
Sub OnContextMenu()
set srcEvent = external.menuArguments.event
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)
elseif srcEvent.type=&#