PostMessage 的問題 |
尚未結案
|
boson
中階會員 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
我用 IE 瀏覽網頁, 常常會發生網頁指令碼錯誤的狀況,例如:
我想寫一個小程式, 不斷偵測, 看看是否出現了錯誤訊息視窗 ?
一旦發現, 便代替 user 按下 N 鍵, 讓錯誤訊息視窗消失 我可以找到錯誤訊息視窗的 Handle 值
我試著用 PostMessage(Handle, WM_KEYDOWN, VK_RETURN, 0); 對其送出 Enter 鍵
結果可以運作 但我要對視窗輸出 N 鍵, 卻發現沒有反應
PostMessage(Handle, WM_KEYDOWN, Ord('N'), 0);
或
PostMessage(Handle, WM_CHAR, Ord('N'), 0);
都不行 請問該如何將 N 鍵的訊息送給那個錯誤訊息視窗呢 ?
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
給你一個小範例, 這個程式有一個timer每隔一秒送一個N鍵.
程式跑起來後, 按下Button1, 會彈出一個MessageBox, timer會送出N鍵關閉這個MessageBox.
procedure TForm1.Button1Click(Sender: TObject); begin MessageBox(0, 'Test', 'Test', MB_YESNO); end; procedure TForm1.Timer1Timer(Sender: TObject); begin // $4E是N鍵的Virtual Key值 // 先送一個Key Down值 keybd_event($4E, 0, KEYEVENTF_EXTENDEDKEY, 0); // 再送一個Key Up值 keybd_event($4E, 0, KEYEVENTF_EXTENDEDKEY KEYEVENTF_KEYUP, 0); end; |
boson
中階會員 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
|
boson
中階會員 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
|
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
|
I_Love_You
一般會員 發表:18 回覆:87 積分:21 註冊:2002-07-24 發送簡訊給我 |
|
boson
中階會員 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
我在網路上搜尋, 一大堆網頁都說 PostMessage 可以將按鍵值送給某個 Handle
可是我就是沒試成功
感到奇怪, 是我哪裏做錯了 ? 還是網路上的說法只是大家抄來抄去, 卻沒人實作 ? 原本以為這只是一個小問題, 應該馬上會有人告訴我 PostMessage 的正確用法
可是大家提出的解答, 卻與 PostMessage 沒什麼關係
keybd_event 搭配 SetForegroundWindow 看起來似乎可以解決我的問題, 雖然我還沒試
我還是很好奇, PostMessage 究竟要怎麼使用才能 work ?
諸位高手能不能幫忙測試一下 ?
|
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |