ホームページ  >  記事  >  バックエンド開発  >  C でプロセス ハンドルを名前で取得するにはどうすればよいですか?

C でプロセス ハンドルを名前で取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-21 16:01:10561ブラウズ

How Can I Get a Process Handle by Name in C  ?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。