关于delphiwebbrowser二次点击来路问题 delphi 屏蔽鼠标点击

webbrowser二次点击webb可以实现二次点击但是二次点击的来路为空。这里先说明一下为什么是没有来路的。

二次点击的代码本质是2个内置浏览器webbrowser,webb1点击的网页的时候把新打开的网页地址赋值给webb2去打开。就相当于webb是从新打开了一个新的地址,来路当然是空的。下面的代码附上解决的办法。

代码比较长 我把关键的地方标注一下

var

curUrl:string;///定义的地址变量

implementation

{$R *.dfm}

procedure TForm1.EmbeddedWB1NewWindow3(ASender: TObject;

var ppDisp: IDispatch; var Cancel: WordBool; dwFlags: Cardinal;

const bstrUrlContext, bstrUrl: WideString);

begin

Cancel := True;

curUrl:=bstrUrl;///这里是解决2次来路不统一的地方

self.Timer12.Interval:=100;

self.Timer12.Enabled:=true;

end;

procedure TForm1.Timer12Timer(Sender: TObject);

begin

self.Timer12.Enabled:=false;

MyNavigate (curUrl);////这里比较关键

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

DelCookie;

DeleteIECache;

swzjl := EmbeddedWB1.LocationURL;

if swzjl <> swz then

begin

timer5.Enabled := true;

end;

if swzjl = swz then

begin

timer6.Enabled := true;

end;

end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin

self.Timer11.Enabled:=true;

self.Timer13.Interval:=5000; //停留等鼠标移动几秒后,开始点击///////////////////////////////////////////////////////////////

self.Timer13.Enabled:=true;

end;

procedure TForm1.MyNavigate(url: string);

var

Flags, Headers, TargetFrameName, PostData: OLEVariant;

begin

Flags := ”;

TargetFrameName := ”;

PostData := ”;

EmbeddedWB1.Stop;//这是设置来路的函数

Headers := ‘Referer:’+self.EmbeddedWB1.LocationURL+#10#13;

EmbeddedWB1.Navigate(url,Flags, TargetFrameName, PostData, Headers);

end;

procedure TForm1.CloseSound;

var

hDSound: Cardinal;

pDirectSoundCreate: Pointer;

hWinmm: Cardinal;

pmidiStreamOpen: Pointer;

pwaveOutWrite: Pointer;

lp: Cardinal;

begin

try

hDSound := LoadLibrary(‘DSound.dll’);

if hDSound > 0 then

pDirectSoundCreate := GetProcAddress(hDSound, ‘DirectSoundCreate’);

if pDirectSoundCreate <> nil then

begin

VirtualProtect(pDirectSoundCreate, 3, PAGE_EXECUTE_READWRITE, lp);

Move(#$C2#$0C#$00, pDirectSoundCreate^, 3);

end;

hWinmm := LoadLibrary(‘Winmm.dll’);

if hWinmm > 0 then

pmidiStreamOpen := GetProcAddress(hWinmm, ‘midiStreamOpen’);

if pmidiStreamOpen <> nil then

begin

VirtualProtect(pmidiStreamOpen, 3, PAGE_EXECUTE_READWRITE, lp);

Move(#$C2#$04#$00, pmidiStreamOpen^, 3);

end;

if hWinmm > 0 then

pwaveOutWrite := GetProcAddress(hWinmm, ‘waveOutWrite’);

if pwaveOutWrite <> nil then

begin

VirtualProtect(pwaveOutWrite, 3, PAGE_EXECUTE_READWRITE, lp);

Move(#$C2#$0C#$00, pwaveOutWrite^, 3);

end;

except

end;

end;

procedure TForm1.EmbeddedWB1NavigateComplete2(ASender: TObject;

const pDisp: IDispatch; var URL: OleVariant);

var

Doc2:IHTMLDocument2;

begin

Doc2:=EmbeddedWB1.Document as IHTMLDocument2;

Doc2.parentWindow.execScript(‘function open(){return;}’,'Javascript’);

Doc2.parentWindow.execScript(‘function alert(){return;}’,'Javascript’);

Doc2.parentWindow.execScript(‘function confirm(){return;}’,'Javascript’);

Doc2.parentWindow.execScript(‘function showModalDialog(){return;}’,'Javascript’);

Doc2.parentWindow.execScript(‘function attachEvent(){return;}’,'Javascript’); //禁止动态添加事件

Doc2.parentWindow.execScript(‘function document.createElement(){return;}’,'Javascript’);//禁止动态创建

end;

function TForm1.EmbeddedWB1ShowMessage(Sender: TObject; HWND: Cardinal;

lpstrText, lpstrCaption: PWideChar; dwType: Integer;

lpstrHelpFile: PWideChar; dwHelpContext: Integer;

var plResult: Integer): HRESULT;

begin
关于delphiwebbrowser二次点击来路问题 delphi 屏蔽鼠标点击

result:=s_OK; //禁止弹出各种脚本对话框

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

//self.EmbeddedWB1.Navigate(‘http://www.jlrenti.com/html/ribenrentiyishu/200912/03-1095.html’);

self.EmbeddedWB1.Navigate(‘http://180.123.89.103/’);

DeleteIECache;

end;

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/85598.html

更多阅读

你会三次元世界跟什么人谈论二次元? 三次元转二次元

你会三次元世界跟什么人谈论二次元?我个人在三次元世界几乎不跟任何人谈论二次元的事情,除非了一些确定是“自己人”的三次元朋友。大概也正因为如此,“腐女”身份并没有给我带来多少麻烦。除了几年前遇上的两个同事,无意中让他们看到

百度恶意点击科普 百度恶意点击工具

今天去某官网浏览产品信息,结果某官网提示恶意点击,请重启电脑。不知不觉我就唱了起来:只是在人群中多看了你一眼……在很多竞价者心中恶意点击就是一种常见不想见的伤痛,所谓一朝被蛇咬,半朝被蛇口。在此,我对恶意点击做一次系统的科普,希

商务通防止恶意点击功能学习

让大家期待已久的网站商务通的防恶意点击功能终于完成内测、成功发布了。  防恶意点击  说明  为了防止访客恶意的多次点击用户在各大网站所投放的付费关键词广告,用户可以进行以下设置。  此功能只能在访客离线30分钟之后才

二次供水设备常见问题有哪些? 二次供水设备原理

统一维护新技术二次供水设备保卫生有什么样的方式能让全市的二次供水设备卫生都得到保障?有关专家在接受记者采访时提议:一方面,在全市由一家部门或企业强制维护二次供水设备供水;另一方面,积极推广保障二次供水设备二次供水卫生的新技术

声明:《关于delphiwebbrowser二次点击来路问题 delphi 屏蔽鼠标点击》为网友倾夏暖桑榆分享!如侵犯到您的合法权益请联系我们删除