1

可能重复:
如何有效地杀死 C++ (Win32) 中的进程?


我正在创建一个必须执行一项重要任务的程序 - 它可能(很少)与用户可能无意中启动的另一个程序(比如说 a.exe)发生资源冲突。
我想做的是在执行其余工作之前杀死 a.exe(如果它正在运行)。
有什么方法可以阻止另一个程序/进程从 c++(在 Windows 下运行)运行?
我希望在美丽的提升中可能会有一些东西......
谢谢。

4

3 回答 3

3

如果您确定图像名称是a.exe那么它非常简单:

system("taskkill /F /IM a.exe >nul 2>&1");
于 2012-05-29T22:25:47.520 回答
1

假设您在 Windows 上工作。

您可以使用 .NET 方法。我会给你链接一个帖子。https://stackoverflow.com/a/116098/1424790

如果您需要,我可以将帖子翻译成 C++(但我需要一些时间)。

于 2012-05-29T22:25:10.110 回答
1

这取决于,如果您在谈论 Windows,那么您可以使用taskkill已经说明的方法,也可以使用 kernel32.dll 的TerminateProcess方法。

更多信息 - http://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=vs.85).aspx

如果你在 *nix 上,它就像kill使用signal.h.

有关这方面的更多信息 - http://linux.die.net/man/2/kill 哎呀,只需正确阅读提到 Windows 的问题

于 2012-05-29T22:31:09.970 回答