从c ++代码中停止外部程序

时间:2012-05-29 22:22:13

标签: c++ boost process external kill

  

可能重复:
  How to effectively kill a process in C++ (Win32)?


我正在创建一个必须执行重要任务的程序 - 它可能(很少)与用户可能无意中启动的另一个程序(假设是a.exe)存在资源冲突。
在我做其余的工作之前,我想做的是杀死a.exe,如果它正在运行 有没有办法阻止其他程序/进程从c ++(在Windows下运行)运行?
我希望美妙的提升中可能有某些东西...... 谢谢。

3 个答案:

答案 0 :(得分:3)

如果您确定图片名称为a.exe,则非常简单:

system("taskkill /F /IM a.exe >nul 2>&1");

答案 1 :(得分:1)

假设您正在使用Windows。

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

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

答案 2 :(得分:1)

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

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

如果您使用的是* nix,就像使用kill中的POSIX signal.h方法一样简单。

更多信息 - http://linux.die.net/man/2/kill oops,只是正确阅读提到Windows的问题