2010-05-05 106 views
1

我正在使用VC++編譯器,我想知道如何殺死一個進程。有沒有什麼功能。如何殺死VC++的進程

我試着用TerminateProcess();但我做不到...

+0

你能告訴我們你的代碼,並更清楚地知道哪裏出了問題? – ereOn 2010-05-05 07:09:38

回答

0

TerminateProcess要求PROCESS_TERMINATE正確。如果您從OpenProcess獲取流程句柄,則dwDesiredAccess參數必須至少包含PROCESS_TERMINATE

如果你想殺死一個提升的進程,那麼你的應用程序(該應用程序正在進行殺戮)也必須提升。

你從GetLastError()得到了什麼錯誤代碼?

5

我不確切地知道你想做什麼,但你必須知道TerminateProcess()只是殺死了這個過程,卻沒有給他一個正確關閉的機會。

您可能需要首先發送一個WM_CLOSE消息給應用程序,然後如果它沒有響應,請用TerminateProcess()將其終止。

Dr Dobbs有很好文章(帶樣品)只是here

你可能想看一看。

0

只是爲了確保你做正確的事:

  • 使用OpenProcess獲取某個進程ID進程句柄對這個(請求PROCESS_TERMINATE訪問權限)
  • 呼叫TerminateProcess處理

這種方法到底出了什麼問題?