如何得知所呼叫的外部程式載入完成? |
尚未結案
|
TomGlavine
一般會員 發表:1 回覆:1 積分:0 註冊:2003-05-22 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
TomGlavine
一般會員 發表:1 回覆:1 積分:0 註冊:2003-05-22 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
TomGlavine您好:
引言: 如果有一個程式的載入時間比較長,而一般程式一執行就會出現一個logo畫面,但是還沒完全執行起來那是否能在sendmessage進行操作之前,先加上Sleep();讓SendMessage晚點動作... 可以再加上程式是否處於無回應狀態的機制(RaynorPao大哥提供) DWORD dwResult=0; LRESULT lr=0; HWND hWnd=NULL; hWnd=FindWindow(NULL, "未命名 - 記事本"); if(hWnd!=NULL) { lr=SendMessageTimeout(hWnd, WM_SETFOCUS, NULL, NULL,SMTO_NORMAL, 5000, &dwResult); if(lr==0) { ShowMessage("Failed or Timeout"); } else ShowMessage("正常"); }順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 - |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
大約就是這樣了 :
procedure TForm1.Button2Click(Sender: TObject); var PI : TProcessInformation; SI : TStartupInfo; begin FillChar(SI, SizeOf(SI), 0); SI.CB := SizeOf(SI); if CreateProcess(0,'notepad',NIL,NIL,False,NORMAL_PRIORITY_CLASS, NIL, NIL,SI,PI) then begin WaitForInputIdle(PI.hProcess, 10000); // Max wait 10 secs // SendMessage(....) ShowMessage('Opened'); end else ShowMessage('Cannot Open NotePad'); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |