ホームページ >バックエンド開発 >C++ >C で ::CreateProcess を使用して Windows 実行可能ファイルを起動する方法

C で ::CreateProcess を使用して Windows 実行可能ファイルを起動する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 09:02:02832ブラウズ

How to Launch a Windows Executable Using ::CreateProcess in C  ?

C で ::CreateProcess を使用した Windows 実行可能ファイルの起動

Windows 環境でのプログラミングの重要な側面の 1 つは、実行可能ファイルを起動できることです。ファイルを作成し、その実行を管理します。この記事では、C の ::CreateProcess 関数を利用してこのタスクを実行するための包括的なガイドを提供します。

EXE を効果的に起動し、完了を待ち、リソースのクリーンアップを処理するには、次の手順を検討してください。

  1. 必要な構造体の宣言: プロセス情報、ハンドル、その他のランタイム属性を取得するために、STARTUPINFO 構造体と PROCESS_INFORMATION 構造体を宣言することから始めます。
  2. 起動パラメータの設定 : STARTUPINFO 構造体を構成して、実行可能ファイルへのパス、コマンドライン引数、および必要なプロセス作成フラグを指定します。
  3. プロセスの作成: ::CreateProcess 関数を使用して、新しいプロセス。STARTUPINFO 構造体を渡し、PROCESS_INFORMATION 構造体をキャプチャします。
  4. プロセスの完了を待機中: 起動された EXE が終了するまで呼び出しスレッドが続行しないようにするには、次の WaitForSingleObject 関数を使用します。 PROCESS_INFORMATION 構造体から取得した hProcess ハンドル。
  5. プロセス ハンドルを閉じる: EXE が終了したら、関連するハンドルをすべて適切に閉じます。これには、PROCESS_INFORMATION 構造体から hProcess ハンドルと hThread ハンドルの両方を閉じる必要があります。

これらの手順を説明するには、次のコード スニペットを参照してください。

<code class="c++">STARTUPINFO info={sizeof(info)};
PROCESS_INFORMATION processInfo;
if (CreateProcess(path, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &amp;info, &amp;processInfo))
{
    WaitForSingleObject(processInfo.hProcess, INFINITE);
    CloseHandle(processInfo.hProcess);
    CloseHandle(processInfo.hThread);
}</code>

これらの手順に従うことで、 C の ::CreateProcess を使用して Windows 実行可能ファイルを効率的に起動できるため、適切な実行とリソースのクリーンアップが保証されます。

以上がC で ::CreateProcess を使用して Windows 実行可能ファイルを起動する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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