Delphi中点击网页弹出的Alert对话框的确定按钮
? ? ? ?實現(xiàn)的方法有很多,一般都是使用Windows API函數(shù)遍歷窗口,查找指定標題的窗口,然后從該窗口查找確定按鈕,向該按鈕發(fā)送鼠標消息進行模擬點擊。由于IE8由Alert彈出的網(wǎng)頁對話框的標題是“來自網(wǎng)頁的消息”,而IE6由Alert彈出的網(wǎng)頁對話框的標題是“Microsoft Internet Explorer”,所以本文沒有按查找窗口標題方法獲取窗口句柄。注意到不管IE哪個版本,IE窗口的類名都是“IEFrame”,而網(wǎng)頁對話框的父窗口是IE窗口,所以本文是根據(jù)父窗口的類名是不是IEFrame來判斷窗口是不是網(wǎng)頁對話框,以下代碼點擊網(wǎng)頁彈出的Alert對話框和Confirm對話框的“確定”按鈕,并用Label1控件顯示網(wǎng)頁對話框的消息內(nèi)容:
procedure?TForm1.Button1Click(Sender:?TObject);
var
??hIE,?hDlg,?hBtn,?hStatic:HWND;
??Text:?array[0..255]?of?char;
begin
??hDlg?:=?GetWindow(Handle,?GW_HWNDFIRST);
??While?hDlg?<>?0?do
??begin
????hIE?:=?GetParent(hDlg);
????if?GetClassName(hIE,?Text,?255)?>?0?then??//獲取父窗口類名
??????if?Text?=?'IEFrame'?then?//父窗口為IE窗口
???????begin
?????????hBtn?:=?FindWindowEx(hDlg,?0,?nil,?'確定');?//查看確定按鈕
?????????if?hBtn?<>?0?then
?????????begin
???????????hStatic?:=?FindWindowEx(hDlg,?0,?'Static',?nil);
???????????hStatic?:=?FindWindowEx(hDlg,?hStatic,?'Static',?nil);
???????????if?GetWindowText(hStatic,?Text,?255)?>?0?then
?????????????Label1.Caption?:=?Text;
???????????Sleep(100);
???????????SendMessage(hBtn,?$00F5,?0,?0);?//第一次點擊使確定按鈕獲取焦點
???????????Sleep(100);
???????????SendMessage(hBtn,?$00F5,?0,?0);?//第二次點擊擊中確定按鈕
?????????end;
???????end;
????hDlg:=GetWindow(hDlg,GW_HWNDNEXT);
??end;
end;
總結
以上是生活随笔為你收集整理的Delphi中点击网页弹出的Alert对话框的确定按钮的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无聊!为何说程序员是最实用主义?
- 下一篇: 飞鸽_飞鸽传书_飞鸽传书2010_飞鸽传