2013-06-28 44 views
-4

我可以从c或C++程序访问任务管理器中的进程,如explorer.exe吗?在windows下杀死所有未列入白名单的进程

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

+0

与你的标题有什么关系? –

+0

抱歉,标题是针对其他问题的错误 – GhostCoder

+0

整个操作系统的白名单似乎是一个非常糟糕的决定... – UmNyobe

回答

1

Just ShellExecute taskkill。输入taskkill /?以cmd为单位获取更多信息。 它可以通过图像名称(例如notepad.exe)和PID(例如1337)来杀死。

将它与tasklist命令结合使用。

如果您不想使用简单的批处理脚本(或PowerShell),但坚持要在C或C++中执行此操作,则应该使用管道来处理命令的输出。

0

糟糕的做法,恕我直言。

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

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

另一方面,你可以有你想杀死的进程的黑名单。

Windows为halting processes提供了清晰的API。 首先你需要enumerate all running processes

但是,除非您有足够的理由这样做,否则不鼓励您强制停止无法启动的进程。

0

这很简单,也有在做的伎俩窗口两个命令:

  1. 任务列表 - 显示所有当前活动的任务。
  2. TASKKILL - “杀死” 您指定

尝试一下在cmd中的任务:

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