如何使用C ++结束进程?

时间:2012-09-14 12:15:52

标签: c++ winapi console process terminate

我正在尝试创建一个结束进程的C ++程序。所以从头开始,我不太确定我应该向哪个方向前进?我的意思是基于我所做的研究,解决方案涉及这些步骤(让我知道这是不正确的逻辑):

  1. 获取流程名称(在我的情况下,它始终是相同的)

  2. 迭代所有进程并找到匹配的名称(假设此进程具有唯一名称)

  3. 获取ID并终止

  4. 正如我所提到的,我不必担心检查重复的进程名称,因为它被认为是唯一的,但现在我需要指导我应该查看哪种类型的库,类等?

2 个答案:

答案 0 :(得分:0)

使用TerminateProcess功能。

答案 1 :(得分:0)

请参阅EnumProcesses并将Handles研究为流程。

将一个类型为pID的空数组传递给EnumProcesses,它会用当前正在运行的进程的pID填充它,所以使用一个大数组。这样,您可以枚举所有正在运行的进程。

使用OpenProcess获取与PID关联的句柄,并调用GetModuleFileNameEx以获取其完全限定的路径,以查看您正在查看的那个是否是您想要的那个。

然后你可以在句柄上使用TerminateProcess,如果它是你要结束的那个。