C で名前によるプロセス ハンドルの取得
「example.exe」などのプロセス名に基づいてプロセスのハンドルを取得するには、" C では次のアプローチを利用できます。
最初のステップは、実行中のすべてのプロセスのスナップショットを作成することです。 CreateToolhelp32Snapshot 関数:
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
次に、スナップショット内のプロセスを反復処理して、指定された名前を持つプロセスを見つける必要があります:
PROCESSENTRY32 entry; entry.dwSize = sizeof(PROCESSENTRY32); if (Process32First(snapshot, &entry) == TRUE) { while (Process32Next(snapshot, &entry) == TRUE) { if (stricmp(entry.szExeFile, "target.exe") == 0) { // Found the process
プロセス情報を入手して、 OpenProcess 関数を使用してそのファイルを取得できます。 handle:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
注: PROCESS_ALL_ACCESS 権限を使用するには、質問の回答に示されている代替コード スニペットに示されているように、デバッグ権限を有効にする必要がある場合があります。
EnableDebugPriv();
プロセス ハンドルを取得したら、次を使用してプロセスを終了するなど、さまざまな操作を実行できます。プロセスを終了します。
TerminateProcess(hProcess, 0);
以上がC でプロセス ハンドルを名前で取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。