C++ 控制台判断 EXE 是否正在运行
C++ 控制台判断 EXE 是否正在运行
可以使用以下步骤判断 EXE 是否正在运行:
- 使用
CreateToolhelp32Snapshot函数创建系统进程快照。 - 使用
Process32First函数和Process32Next函数遍历系统进程快照,查找指定的 EXE 文件名。 - 如果找到了指定的 EXE 文件名,则说明该 EXE 正在运行;否则该 EXE 没有在运行。
下面是一个示例代码:
#include <windows.h>
#include <tlhelp32.h>
#include <tchar.h>
bool IsProcessRunning(const TCHAR* processName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshot == INVALID_HANDLE_VALUE)
{
return false;
}
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
if (!Process32First(hSnapshot, &pe32))
{
CloseHandle(hSnapshot);
return false;
}
do
{
if (_tcsicmp(pe32.szExeFile, processName) == 0)
{
CloseHandle(hSnapshot);
return true;
}
} while (Process32Next(hSnapshot, &pe32));
CloseHandle(hSnapshot);
return false;
}
int main()
{
if (IsProcessRunning(TEXT("notepad.exe")))
{
printf("Notepad is running.\n");
}
else
{
printf("Notepad is not running.\n");
}
return 0;
}
代码解释:
IsProcessRunning函数用于判断指定的 EXE 是否正在运行。CreateToolhelp32Snapshot函数用于创建系统进程快照。Process32First函数用于获取第一个进程信息。Process32Next函数用于获取下一个进程信息。_tcsicmp函数用于比较字符串,忽略大小写。
使用示例:
以上代码示例判断了 notepad.exe 是否正在运行。你可以修改 processName 参数来判断其他 EXE 是否正在运行。
注意:
- 该代码仅适用于 Windows 操作系统。
- 使用
CreateToolhelp32Snapshot函数需要包含tlhelp32.h头文件。 - 使用
tchar.h头文件可以实现跨平台的字符串处理。
原文地址: https://www.cveoy.top/t/topic/owGM 著作权归作者所有。请勿转载和采集!