可以通过以下步骤来判断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++判断aaaexe是否在运行

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

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