如何从Ie菜单中启动可执行程序?(100分)

  • 主题发起人 主题发起人 garden_wood
  • 开始时间 开始时间
G

garden_wood

Unregistered / Unconfirmed
GUEST, unregistred user!
我希望象Netant一样,在ie的右键菜单中加入自己的菜单项,并在用户点击后启动
相应的程序.
现在我已经在ie的右键菜单中加入了自己的菜单项,可是,现在的问题是,点击这个项目只能运行起html文件.我查看了netant的相应的html文件,可惜在下对
vbscript不懂,不知道人家是怎么用的,那位可帮忙?
 
俺也不懂vbscript,

听一听!
 
我刚写了个示例,包阔原代码与HTML.邮给你,请查收. 不过分归我! {B-)))
 
不是 vbscript
而是在 formcreate 中修改注册表
HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt
 
to 阿蒙
注册表那个地方是调用htm等文件的,好像不能直接调用可执行程序?
 
沈前卫,你的程序收到.但不论是del3,还是del4都不能编译,打开工程文件就报错,
说什么非法流错误!我对del也是才开始用,以前都是用vb,vc的,所以我不知道是怎么回事,帮我看看,ok?

 
用Delphi5打开,因为.DFM为文本文件。
现在发给你的可以用Delphi4能打开的,如不能,则可能是版本不兼容(主要是Use
Unit的变化).最好用D5打开吧。还有问题,shenqw@cmmail.com
 
其实主要是看html文件编写就可以了,你需要写一个activex,在网页种调用这个activex,而你的activex的作用,就是启动你的程序。下面是网络蚂蚁网页的解释

Sub AddLink(Url,Info)
On Error Resume Next
set NetAntsApi=CreateObject("NetAnts.API")<font color="red">//NetAnts.API就是这次调用的activex,也就是你看到的antapi.dll</font>
if err<>0 then
MsgBox("NetAnts not properly installed on this PC!")
else
if NetAntsApi.IsUrlExist(Url) then
MsgBox(Url+vbCrLf+"already in queue")
else
call NetAntsApi.AddUrl(Url, Info, external.menuArguments.document.Url)<font color="red">//在这里,呼叫了activex的方法addurl添加内容</font>
end if
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="MenuExtImage" then
if TypeName(EventElement)="HTMLAreaElement" then
Call AddLink(EventElement.href,EventElement.Alt)
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)
exit sub
end if
Loop
Call AddLink(srcAnchor.href,srcImage.Alt)
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)
exit sub
end if
Loop
Call AddLink(srcAnchor.href,srcAnchor.innerText)
elseif 1=1 then
MsgBox("Unknown Event Source """ + srcEvent.type + """" + vbCrLf + "Please send description of error to hong_lewis@bigfoot.com")
end if
end sub

call OnContextMenu()

</script>

用javascript也能写这个网页的,而且会简单许多
 
修改注册表就行了.(如果要编程实现,用TRegisty就行了)

HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/INTERNET EXPLORER/EXTENSIONS
新建主键:
主键名{0713E8D2-850A-101B-AFC0-4210102A8DA7}
新建字符串
BUTTONTEXT "ABC"(新按钮上面显示的文字)
CLSID "{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
DEFAULT VISIBLE "YES"
EXEC "C:/.../ABC.EXE"(调用的任意可执行程序)
HOTICON "C:/.../A.ICO"(鼠标放上去时候显示的图标)
ICON "C:/.../B.ICO"(显示的普通图标)

行了,重新启动IE,图标加上去了!(我已经加了DLExpert进去,真的很好用!)
~~~~~~~~~
beta@188.net
 
多人接受答案了。
 
后退
顶部