如何从VC ++中删除进程

时间:2010-05-05 07:07:25

标签: c++ windows process kill

使用VC ++编译器我想知道如何终止进程。是否有任何功能。

我尝试使用TerminateProcess();但我做不到......

3 个答案:

答案 0 :(得分:5)

我不知道你想要做什么,但你必须知道TerminateProcess()只是杀死了这个过程而没有让他有机会正常关闭。

您可能希望首先向应用程序发送WM_CLOSE消息,然后,如果它没有响应,则使用TerminateProcess()将其终止。

Dobbs博士有一篇精彩文章(带样本)here

你可能想看看。

答案 1 :(得分:0)

TerminateProcess需要PROCESS_TERMINATE权限。如果您从OpenProcess获得流程处理,则dwDesiredAccess参数必须至少包含PROCESS_TERMINATE

如果你试图杀死一个提升的进程,那么你的应用程序(杀毒的应用程序)也必须被提升。

您从GetLastError()获得了什么错误代码?

答案 2 :(得分:0)

只是为了确保你做对了:

  • 使用OpenProcess从进程ID获取进程句柄(请求PROCESS_TERMINATE访问权限)
  • 在此句柄上调用TerminateProcess

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