要判断一个进程是否正在运行,可以使用 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.'。

C++ 检查进程是否正在运行:示例代码

原文地址: https://www.cveoy.top/t/topic/owGy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录