2010-05-05 108 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处理

这种方法到底出了什么问题?