在Windows下杀死任何未列入白名单的进程

时间:2013-06-28 05:52:58

标签: c++ c windows

我可以从c或c ++程序访问任务管理器中的进程,如explorer.exe吗?

我正在编写一个程序来结束那些不是顺利运行计算机所必需的进程。所有必要进程的列表都保存在文本文件中。我的程序需要检查此列表中的进程并与任务管理器中的进程进行比较 - 如果文本文件中没有进程,那么该进程应该结束。

3 个答案:

答案 0 :(得分:1)

Just ShellExecute taskkill。输入taskkill /?在cmd中获取更多信息。 它可以通过图像名称(例如notepad.exe)和PID(例如1337)来终止。

将它与tasklist命令结合使用。

如果您不想使用简单的批处理脚本(或powershell),但坚持使用C或C ++,则应使用管道来处理命令的输出。

答案 1 :(得分:0)

糟糕的做法,恕我直言。

您永远不应该基于白名单杀死其他进程。 我认为最好阻止他们开始。 您可以使用Autoruns中的sysinternals来执行此操作。

系统服务怎么样?您是否只对用户会话中的流程感兴趣?

另一方面,你可以列出你想杀死的黑名单。

Windows为halting processes提供了明确的API。 首先,您需要enumerate all running processes

然而,在您有充分理由这样做之前,不要强行停止您未启动的流程。

答案 2 :(得分:0)

这很简单,Windows中有两个命令可以解决这个问题:

  1. 任务列表 - 显示当前处于活动状态的所有任务。
  2. taskkill - “杀死”您指定的任务
  3. 在cmd中尝试:

    yourcommand/?为您想要的命令生成帮助。