gpt4 book ai didi

c - 如何按名称杀死进程? (Win32 API)

转载 作者:太空狗 更新时间:2023-10-29 16:23:42 27 4
gpt4 key购买 nike

基本上,我有一个将多次启动的程序。因此,程序将启动两个或多个进程。

我想使用 Win32 API 并终止/终止具有特定名称的所有进程。

我见过杀死一个进程的例子,但没有看到多个同名(但参数不同)的进程。

最佳答案

尝试下面的代码,killProcessByName() 将杀死名称为 filename 的任何进程:

#include <windows.h>
#include <process.h>
#include <Tlhelp32.h>
#include <winbase.h>
#include <string.h>
void killProcessByName(const char *filename)
{
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
PROCESSENTRY32 pEntry;
pEntry.dwSize = sizeof (pEntry);
BOOL hRes = Process32First(hSnapShot, &pEntry);
while (hRes)
{
if (strcmp(pEntry.szExeFile, filename) == 0)
{
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0,
(DWORD) pEntry.th32ProcessID);
if (hProcess != NULL)
{
TerminateProcess(hProcess, 9);
CloseHandle(hProcess);
}
}
hRes = Process32Next(hSnapShot, &pEntry);
}
CloseHandle(hSnapShot);
}
int main()
{
killProcessByName("notepad++.exe");
return 0;
}

注意:代码对文件名区分大小写,您可以编辑它不区分大小写。

关于c - 如何按名称杀死进程? (Win32 API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7956519/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com