可以通过以下步骤来判断 aaa.exe 是否在运行:

  1. 使用 Windows API 函数 EnumProcesses() 获取所有正在运行的进程 ID。

  2. 使用 Windows API 函数 OpenProcess() 打开 AAA.exe 进程,并获取其进程句柄。

  3. 使用 Windows API 函数 EnumProcessModules() 获取 AAA.exe 进程中的所有模块。

  4. 使用 Windows API 函数 GetModuleBaseName() 获取每个模块的名称,并与 'AAA.exe' 进行比较,如果匹配则证明 AAA.exe 正在运行。

  5. 如果找到 AAA.exe 进程,则使用 Windows API 函数 CloseHandle() 关闭进程句柄。

以下是示例代码:

#include <windows.h>
#include <psapi.h>
#include <iostream>

bool isProcessRunning(const char* processName)
{
    DWORD processes[1024], bytesNeeded;
    if (!EnumProcesses(processes, sizeof(processes), &bytesNeeded)) {
        return false;
    }

    DWORD count = bytesNeeded / sizeof(DWORD);
    for (DWORD i = 0; i < count; i++) {
        HANDLE processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processes[i]);
        if (processHandle) {
            HMODULE module;
            DWORD bytesNeeded;
            if (EnumProcessModules(processHandle, &module, sizeof(module), &bytesNeeded)) {
                char moduleName[MAX_PATH];
                if (GetModuleBaseName(processHandle, module, moduleName, sizeof(moduleName) / sizeof(char))) {
                    if (_stricmp(moduleName, processName) == 0) {
                        CloseHandle(processHandle);
                        return true;
                    }
                }
            }
            CloseHandle(processHandle);
        }
    }

    return false;
}

int main()
{
    if (isProcessRunning("AAA.exe")) {
        std::cout << "AAA.exe is running." << std::endl;
    } else {
        std::cout << "AAA.exe is not running." << std::endl;
    }
    return 0;
}
C++ 判断 AAA.exe 是否正在运行

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

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