首頁 > 後端開發 > C++ > 如何在 C 中透過名稱檢索進程句柄?

如何在 C 中透過名稱檢索進程句柄?

Susan Sarandon
發布: 2024-11-25 03:30:25
原創
926 人瀏覽過

How to Retrieve a Process Handle by its Name in C  ?

在C 中透過進程名稱檢索進程句柄

要透過進程名稱檢索進程句柄,我們可以利用CreateToolhelp32Snapshot 函數來取得系統的快照。此函數提供對正在運行的進程的資訊的訪問,包括其進程名稱。

以下程式碼片段示範如何使用CreateToolhelp32SnapshotProcess32Next 來搜尋進程命名並擷取其句柄:

#include <cstdio>
#include <windows.h>
#include <tlhelp32.h>

int main(int, char *[]) {
    PROCESSENTRY32 entry;
    entry.dwSize = sizeof(PROCESSENTRY32);

    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

    if (Process32First(snapshot, &entry) == TRUE) {
        while (Process32Next(snapshot, &entry) == TRUE) {
            if (stricmp(entry.szExeFile, "target.exe") == 0) {
                HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);

                // Do stuff with the process...

                CloseHandle(hProcess);
            }
        }
    }

    CloseHandle(snapshot);

    return 0;
}
登入後複製

PROCESS_ALL_ACCESS存取權限,您可能需要暫時啟用 SE_DEBUG_NAME 權限。具體方法如下:

以上是如何在 C 中透過名稱檢索進程句柄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板