+ -
当前位置:首页 → 问答吧 → delphi IE 右键菜单

delphi IE 右键菜单

时间:2011-08-25

来源:互联网

如何创建一个IE右键菜单

就像迅雷的IE右键下载

要求:
创建一个IE右键菜单,当点击的时候 可以获取到当前页面的源代码

然后把网页的源代码 传给软件

作者: liyuxin88   发布时间: 2011-08-25

本站有这问题的讨论:
http://topic.csdn.net/t/20001224/19/51722.html
陈省在深度探索提高过这方面的代码实现:
http://delphi.sharpplus.com/Delphi/ie_menu.htm

如果看完这两个连接,都弄不来的话,那么,在这三言两语就更说不来的了。

作者: gzzai   发布时间: 2011-08-25

这个有难度。我以前写过。你这点分不足以我给你贴全部代码。这里我只说下思路和贴出部分代码:

第一步:编写DLL文件,该DLL文件与网页中的脚本实现通讯,并把取到的网址发给EXE主程序。这一步是程序的核心和关键。

第二步:编写接受消息的EXE窗体,并在该窗体中实现写与删注册表的功能。该EXE必须能接受到DLL发过来的消息(网址源码字符串)。此步的写注册表功能主要决定IE右键是否显示。

第三步:编写网页脚本(即.htm文件)。可以是可以采用VBScrip脚本。实现向DLL传参。


得到当前网页的原理是:脚本获取到数据→传给DLL媒介→接受DLL传来消息的EXE

没有DLL做中间传递,右键能加到菜单中但不具有调用功能,这样就毫无意义的一个菜单。加右键简单,关键是调用。通过DLL来实现网页鼠标右键是唯一的办法。


加右键的要求:

必须保证htm文件存在,因为调用就是由脚本起源。
必须保证注册DLL,否则脚本因找不到对象而创建失败。



建立ID右键菜单:

Var Reg:TRegistry;
begin
 Reg:=TRegistry.Create;
 Try
  Reg.RootKey:=HKEY_CURRENT_USER;
  if Reg.OpenKey('Software\Microsoft\Internet Explorer\MenuExt',True) then
  begin
  Reg.WriteString('获取源码(&Q)','');
  if Reg.OpenKey('获取源码(&Q)',True) then
  begin
  Reg.WriteString('',ExtractFilePath(ParamStr(0))+'IERight.htm');
  Reg.WriteInteger('Contexts',$f3);
  end;
  end;
 Finally
  Reg.CloseKey;
  Reg.Free;
 end;


'IERight.htm'内的脚本就是一个获取源码的写法,你自己研究吧。


注册DLL时执行命令:regsvr32 /s IEContextMenu.dll

作者: mwy654321   发布时间: 2011-08-25

楼上的可以拆成几部分来学习
 其实也就是那么回事。
全部弄到一起就有点难度了

作者: xiaofansong   发布时间: 2011-08-25

来关注下

作者: iqyely   发布时间: 2011-08-25

热门下载

更多