【发布时间】:2011-02-15 19:18:12
【问题描述】:
我正在使用 VC++ 编译器,我想知道如何杀死一个进程。有什么功能吗?
我尝试使用 TerminateProcess();但我做不到……
【问题讨论】:
-
您能否向我们展示您的代码并更明确地说明出了什么问题?
我正在使用 VC++ 编译器,我想知道如何杀死一个进程。有什么功能吗?
我尝试使用 TerminateProcess();但我做不到……
【问题讨论】:
我不知道你到底想做什么,但你必须知道TerminateProcess() 只是杀死进程而没有给他正确关闭的机会。
您可能希望首先向应用程序发送WM_CLOSE 消息,然后,如果它没有响应,则使用TerminateProcess() 将其终止。
Dobbs 博士有一篇很棒的文章(附样本)here。
你可能想看看。
【讨论】:
只是为了确保你做对了:
OpenProcess从进程ID获取进程句柄(请求PROCESS_TERMINATE访问权限)TerminateProcess
这种方法到底出了什么问题?
【讨论】:
TerminateProcess 需要PROCESS_TERMINATE 权限。如果您从OpenProcess 获取进程句柄,则dwDesiredAccess 参数必须至少包含PROCESS_TERMINATE。
如果您尝试终止提升的进程,那么您的应用(执行终止的应用)也必须提升。
你从GetLastError()得到什么错误代码?
【讨论】: