C++ 检查进程是否正在运行:示例代码
要判断一个进程是否正在运行,可以使用 Windows API 中的函数 CreateToolhelp32Snapshot 和 Process32First/Process32Next。以下是一个示例代码,用于检查名为 'www.exe' 的进程是否正在运行:
#include <windows.h>
#include <tlhelp32.h>
#include <string>
bool IsProcessRunning(const std::wstring& processName)
{
PROCESSENTRY32 processEntry = { sizeof(processEntry) };
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (Process32First(snapshot, &processEntry))
{
do
{
if (processName == processEntry.szExeFile)
{
CloseHandle(snapshot);
return true;
}
} while (Process32Next(snapshot, &processEntry));
}
CloseHandle(snapshot);
return false;
}
int main()
{
std::wstring processName = L"www.exe";
if (IsProcessRunning(processName))
{
std::wcout << processName << L" is running." << std::endl;
}
else
{
std::wcout << processName << L" is not running." << std::endl;
}
return 0;
}
该代码定义了一个函数 IsProcessRunning,它接受一个参数 processName,代表要检查的进程名称。该函数首先使用 CreateToolhelp32Snapshot 函数创建一个进程快照,并使用 Process32First/Process32Next 函数遍历所有进程,查找与 processName 相同的进程。如果找到了该进程,则返回 true,否则返回 false。
在主函数中,我们调用 IsProcessRunning 函数来检查名为 'www.exe' 的进程是否正在运行,并输出结果。如果该进程正在运行,则输出 'www.exe is running.',否则输出 'www.exe is not running.'。
原文地址: https://www.cveoy.top/t/topic/owGy 著作权归作者所有。请勿转载和采集!