程式設計模式如何結束未響應的程式

2022-04-30 22:12:18 字數 928 閱讀 3226

有時要程式設計結束乙個程式的執行。

比如說 hwnd  是你要操作的那個視窗的控制代碼。

如果是一般的情況

::postmessage(hwnd,wm_close,0,0);

就可以了。

(注意不要傳送 wm_destroy訊息。

這兩者有什麼區別呢?wm_close,會正常關閉程式,比如說,如果是word檔案未儲存,系統會提示你是否要儲存的。

而 wm_destroy 則不會給你任何提示,就強行結束了。)

但如果是失去響應的應用程式,不論是wm_close還是wm_destroy都無能為力,因為該隔膜幫浦

控制項,必須要是 這樣的形式的。

別的有很多功能是不支援的。比如我想配置文字的背景色卻不能成功哦

好不容易找到的,放在這兒備查!

以傳送ctrl+p為例,hwnd是接受訊息的視窗控制代碼,

keybd_event(   vk_control,0,0,0   );  

::postmessage(   hwnd,   wm_keydown,   'p',0);    

sleep   (30);  

::postmessage(   hwnd,   wm_keyup,   'p',0);  

keybd_event(   vk_control,0,keyeventf_keyup,0   );

怎麼獲得具有輸入焦點的子視窗控制代碼?這個問題看似簡單,卻困惑了很多有經驗的程式設計師。

下面我把問題分解一下。

1,獲得本程序具有輸入焦點的子視窗控制代碼

getfoucus

2,獲得系統中的當前視窗

getforegroundwindow

但要怎麼獲得整個系統中具有輸入焦點的的視窗呢?看下面**

cwnd *pwnd = getforegroundwindow();

if( pwnd )

C 如何判斷程式呼叫的exe已結束

二個方法 以執行系統記事本為例 方法一 這種方法會阻塞當前程序,直到執行的外部程式退出 system.diagnostics.process exep system.diagnostics.process.start c windows notepad.exe exep.waitforexit 關鍵...

C 如何判斷程式呼叫的exe已結束

二個方法 以執行系統記事本為例 方法一 這種方法會阻塞當前程序,直到執行的外部程式退出 system.diagnostics.process exep system.diagnostics.process.start c windows notepad.exe exep.waitforexit 關鍵...

C 如何判斷程式呼叫的exe已結束

二個方法 以執行系統記事本為例 方法一 這種方法會阻塞當前程序,直到執行的外部程式退出 system.diagnostics.process exep system.diagnostics.process.start c windows notepad.exe exep.waitforexit 關鍵...