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

Barbara Streisand
リリース: 2024-11-21 16:01:10
オリジナル
562 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート