7 PROCESSENTRY32W PE32{ 0 };
8 PE32.dwSize =
sizeof(PE32);
10 HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
11 if (hSnap == INVALID_HANDLE_VALUE) {
12 LOG::CRITICAL(
"(ProcessHandle) CreateToolhelp32Snapshot error: {}", GetLastError());
17 BOOL bRet = Process32FirstW(hSnap, &PE32);
19 if (wcscmp(ProcName, PE32.szExeFile) == 0) {
20 PID = PE32.th32ProcessID;
24 bRet = Process32NextW(hSnap, &PE32);
33 CloseHandle(hProcess);
35 hProcess = OpenProcess(accessRights, FALSE, processID);
40 CloseHandle(hProcess);
46 return hProcess != NULL;
50 return hProcess ? 0 : ::GetLastError();
58 static inline HANDLE hProcess = NULL;
Definition ProcessHandle.h:4
static void close_process_handle()
Definition ProcessHandle.h:38
static HANDLE get_handle()
Definition ProcessHandle.h:53
static void open_process_handle(const DWORD processID, const DWORD accessRights)
Definition ProcessHandle.h:31
static bool is_valid_handle()
Definition ProcessHandle.h:45
static DWORD get_last_error()
Definition ProcessHandle.h:49
static DWORD get_PID_by_name(const wchar_t *ProcName)
Definition ProcessHandle.h:6