如何监听IE的脚本运行?并可以返回我自己的任意结果!? 比如拦截到js语句: alert('hi');, 并可以随意返回结果,如可变成 document.write('hi'); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/zhoujianhei/archive/2008/01/16/2046320.aspx看到这篇,不过看不懂.不知delphi如何入手!不知是不是这方面走!? 他那篇博客讲的就是一个COM钩就是找到你要钩的函数在Vtbl中的位置,然后就是把你自己实现的函数以写内存的方式写进去,达到钩的效果通常会判断下那块内存是否具有可写属性, 没有的话,修改,然后再写 高手终于出现了!那是VC看得云里雾里的. 我应该在 webbrower 的哪个事件里面开始 hook 呢? 就是不知道代码填在哪. http://bbs.eyuyan.com/read.php?tid=161573这个易语言的更难懂了 有点明白了 madcodehook 几行代码就应该差不多了.试试先 实现IDocHostShowUI接口可以获得alert的消息,另外在网页中执行javascript也需要有webbrowser的支持,你可以搜搜unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw,ActiveX;type IDocHostShowUI = interface(IUnknown) ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}'] function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall; function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall; end; TWebBrowser = class(SHDocVw.TWebBrowser,IDocHostShowUI) protected function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall; function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall; end; TForm2 = class(TForm) WebBrowser1: TWebBrowser; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form2: TForm2;implementation{$R *.dfm}{ TWebBrowser }function TWebBrowser.ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand, dwData: Integer; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT;begin Result := S_FALSE;end;function TWebBrowser.ShowMessage(hwnd: THandle; lpstrText, lpstrCaption: POLESTR; dwType: Integer; lpstrHelpfile: POLESTR; dwHelpContext: Integer; var plResult: LRESULT): HRESULT;begin plResult := MessageBoxW(hwnd,PWChar(lpstrText),'不得闲测试',65); Result := S_OK;end;procedure TForm2.FormCreate(Sender: TObject);begin self.WebBrowser1.Navigate(Application.ExeName + '\..\test.htm');end;end. 如何用流程图的方式设计首页模块按钮 超难算法:取得URL中如bbs.csdn.net的部分 你也许遇到过(高手)? 关于messagedlg的问题。 线段分组 关于数据库字段名的问题,提建议也给分 简单问题,看看,在线等待~~~` ListViewChange中的参数item是哪一项?是否等于ListView.selected? oracle与access的兼容问题 高手请进,ado控件连接oracle 需要dll封装form的应用级源码 封装spcomm的问题
就是找到你要钩的函数在Vtbl中的位置,然后就是把你自己实现的函数以写内存的方式写进去,达到钩的效果
通常会判断下那块内存是否具有可写属性, 没有的话,修改,然后再写
那是VC看得云里雾里的. 我应该在 webbrower 的哪个事件里面开始 hook 呢? 就是不知道代码填在哪.
这个易语言的更难懂了
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw,ActiveX;type
IDocHostShowUI = interface(IUnknown)
['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;
function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
end; TWebBrowser = class(SHDocVw.TWebBrowser,IDocHostShowUI)
protected
function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;
function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
end; TForm2 = class(TForm)
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}{ TWebBrowser }function TWebBrowser.ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand,
dwData: Integer; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT;
begin
Result := S_FALSE;
end;function TWebBrowser.ShowMessage(hwnd: THandle; lpstrText,
lpstrCaption: POLESTR; dwType: Integer; lpstrHelpfile: POLESTR;
dwHelpContext: Integer; var plResult: LRESULT): HRESULT;
begin
plResult := MessageBoxW(hwnd,PWChar(lpstrText),'不得闲测试',65);
Result := S_OK;
end;procedure TForm2.FormCreate(Sender: TObject);
begin
self.WebBrowser1.Navigate(Application.ExeName + '\..\test.htm');
end;end.