sendmessage(handle,wm_close,0,0) 關閉ie 無效? |
答題得分者是:Rain
|
yirunner
一般會員 發表:11 回覆:8 積分:3 註冊:2002-09-17 發送簡訊給我 |
各位好: 我在 windows 2000 環境下先執行出一個IE 的實體
之後以如下程式嘗試關閉它 procedure TForm1.Button1Click(Sender: TObject);
var h1:hwnd;
begin
H1 := FindWindow(nil,PChar('IEFrame'),nil);
if h1<>0 then
SendMessage(h1,WM_Close,0,0);
end; 但是無法達成目的, 其中 IEFrame 是IE 的CLASSNAME 請問如何解決 ? 謝謝
|
Rain
資深會員 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
|
yirunner
一般會員 發表:11 回覆:8 積分:3 註冊:2002-09-17 發送簡訊給我 |
|
yirunner
一般會員 發表:11 回覆:8 積分:3 註冊:2002-09-17 發送簡訊給我 |
|
Rain
資深會員 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
引言: 多謝Rain 的回答 問題已解決 但是 sendmessage 跟 postmessage 之間的差別 不是在於 後者不會等待訊息處理完畢就直接返回?(我的認知) 不曉得為何這樣的差異會造成這樣的結果? 我試過其他的執行檔, 用 sendmessage 就可以處理了 ... 對於API 不甚了解 煩再請各位解小弟一惑 謝謝The SendMessage function sends the specified message to a window or windows. It calls the window procedure for the specified window and does not return until the window procedure has processed the message. The PostMessage function places (posts) a message in the message queue associated with the thread that created the specified window and then returns without waiting for the thread to process the message. SendMessage發送到消息至表單過程(調用WndProc)並且等待處理結果再返回、PostMessage不同、只是把消息存入待處理的消息佇列中、不等待線程對消息的處理結果、沒有返回值。WM_CLOSE和WM_QUIT似乎是兩個比較特殊的消息、之所以用SendMessage無法關閉IE、可能是IE視窗消息處理機制引起的(換了其他的視窗例如記事本則可)、具體是怎麼樣的就不清楚了 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |