高分求教,IE右键菜单的实现中(像蚂蚁等),在DLL中怎样调用主程序

佣工7001 2002-04-22 08:51:32
有详细例子,再加分!
...全文
149 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
佣工7001 2002-04-23
  • 打赏
  • 举报
回复
本来以为会有什么好办法,看来还得凭力气实现
dev_uoboy 2002-04-22
  • 打赏
  • 举报
回复
老张啊?最近我忙,很少上啦,你咱们改昵称了,我差点认不出来了
kimryo 2002-04-22
  • 打赏
  • 举报
回复
哦,对了,用的WM_COPYDATA!简单吧!

你也可以用filemapping或pipe等其他IPC method.
kimryo 2002-04-22
  • 打赏
  • 举报
回复
JetCarCatch.AddUrl(Url, Info, external.menuArguments.document.Url)

这一行就是调用,你的程序可以实现一个command string来添加,不过好像不好使,原来做过一个一样的功能,不过好像给删了...我找找。

uoboy:

老李啊,喳最近不见你上QQ尼?工程扎样了?
kimryo 2002-04-22
  • 打赏
  • 举报
回复
JetCarCatch.AddUrl(Url, Info, external.menuArguments.document.Url)

这一行就是调用,你的程序可以实现一个command string来添加,不过好像不好使,原来做过一个一样的功能,不过好像给删了...我找找。

uoboy:

老李啊,喳最近不见你上QQ尼?工程扎样了?
dev_uoboy 2002-04-22
  • 打赏
  • 举报
回复
有例子,不过我只有ATL的例子。

你EMAIL?或是QQ?
tiger_qi 2002-04-22
  • 打赏
  • 举报
回复
我也想知道COm如何实现的,关键是从那个接口派生

我也很困惑,又具体的例子吗??
dev_uoboy 2002-04-22
  • 打赏
  • 举报
回复
用COM实现啊,写一个ActiveX的dll,并且注册时将你的GUID创建在子个特定的注册表键之下,接口要求从一个现有的接口派生,重载其中的一些函数就可以达到IE的事件通知功能。这个咚咚叫BHO,具体你查查MSDN,搜索BHO,会有很多的。不过他教的是用ATL,但只要你对COM熟悉,用BCB也行只是有一些代码要手工添加,不像ATL中那么爽
佣工7001 2002-04-22
  • 打赏
  • 举报
回复
waiting......
佣工7001 2002-04-22
  • 打赏
  • 举报
回复
dev_uoboy(过程编程→面向对象) :你所说的我知道,我是问,蚂蚁的DLL中怎末调用其主程序实现添加URL?
dev_uoboy 2002-04-22
  • 打赏
  • 举报
回复
我看了一下,它应该是注册表中控制的。
你打开HKEY_USERS\S-1-5-21-515967899-1275210071-682003330-500\Software\Microsoft\Internet Explorer
在里面应该有一个MenuExt打开它,在它下面就有那些软件扩展的菜单,比如网际快车,如果你装了网际快车那么在IE右键菜单里就会有一个“使用网际快车下载全部链接”你看注册表,哈刚好就有它。打开来看看,里面用一个htm文件控制着它程序的执行。

比如网际快车,他有一个默认的字符串值,里面指向的一个jc_link.htm文件,我打开来看了看,果然,控制下载的和启动网际快车的程序全部是这个HTM里用VBSCRIPT实现的,看看它的内容吧:
<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="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 jetcar@163.net")
end if
end sub


call OnContextMenu()

</script>
airy1727 2002-04-22
  • 打赏
  • 举报
回复
flag
dev_uoboy 2002-04-22
  • 打赏
  • 举报
回复
已经发出来了,你注意查收。

主题是:检测 IE 事件的ATL
佣工7001 2002-04-22
  • 打赏
  • 举报
回复
加不上,满意的话,我另开帖子给分
佣工7001 2002-04-22
  • 打赏
  • 举报
回复
我的email:dajianshi@eyou.com
等待中。。。
加分!

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧