偵測程式當機的問題... |
答題得分者是:RaynorPao
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
請問大家:
要如何偵測自己寫的程式當機否?? 通常應用程式都會出現[沒有回應]的字樣
可是要怎麼讓程式自己判別呢(是否忙碌或當機)??
或是可以偵測到如圖所示[狀態]是執行中,或是沒有沒應呢??
我看過
http://delphi.ktop.com.tw/topic.php?topic_id=27768
的相關文章與RaynorPao大哥的範例,但卡在Caption該如何Assign...
謝謝大家 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 -
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 對不起大家,我又沒看仔細了 用 > <>~我也是在學習的階段,所以請您多多見諒與指教~> >>< face="Verdana, Arial, Helvetica"> taishyang 你好: 試試看這樣子做行不行呢?? < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { DWORD dwResult=0; LRESULT lr=0; HWND hWnd=NULL; hWnd=FindWindow(NULL, "NoResponse"); if(hWnd!=NULL) { lr=SendMessageTimeout(hWnd, WM_SETFOCUS, NULL, NULL, SMTO_NORMAL, 5000, &dwResult); if(lr==0) { ShowMessage("Failed or Timeout"); } } } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
RaynorPao大哥您好:
您真是太厲害了,這就是我需要的...
現在還有一個情況,當我要關閉[沒有回應]的程式用了
HWND hWnd=FindWindow(NULL, "NoResponse"); PostMessage(hWnd,WM_CLOSE,0,0);但會出現如下圖所示的訊息 與 我想要讓他自動關閉,所以我用了 Sleep(5000); keybd_event(69,0,0,0); Sleep(5000); keybd_event(68,0,0,0);但總覺得這是很笨的方式,還有其他更好的方法嗎?? 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 - |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我想要讓他自動關閉,所以我用了taishyang 你好: 我認為你用的方法並不笨,滿簡潔的,很不錯喔 --Sleep(5000); keybd_event(69,0,0,0); Sleep(5000); keybd_event(68,0,0,0);但總覺得這是很笨的方式,還有其他更好的方法嗎??
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
jageirene
一般會員 發表:2 回覆:3 積分:1 註冊:2003-09-16 發送簡訊給我 |
|
clio4177
一般會員 發表:28 回覆:21 積分:9 註冊:2002-07-17 發送簡訊給我 |
請問我利用本文中的一些提示在Win2000平台上寫了一個測試程式"無回應"的應用程式,但卻無法透過SendmMessage或者PostMessage這兩個API函示將"無回應"的程式終止?請問還有沒有其他方式可以將此"無回應"程式作終止??我的測試碼如下:
A.exe發生"無回應":
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Caption="無回應";
while(1)
{
Sleep(1);
}
} B.exe終止"無回應"程式:
void __fastcall TForm1::BtnStartMonitorClick(TObject *Sender)
{
HWND hWnd= FindWindow(NULL,"無回應");
PostMessage(hWnd, WM_CLOSE, 0, 0);
} 執行時卻發生B.exe無法關閉或終止A.exe,反而造成B.exe也發生"無回應"的狀況,請問該如何修改上面的程式碼?才能透過B.exe終止A.exe這個"無回應"程式。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |