C++でCreateProcess関数を呼び出す方法は?
C++ で CreateProcess 関数を使用する方法:
- Windows APIに属するCreateProcess関数が含まれるため、Windows.hヘッダーファイルをインクルードします。
- STARTUPINFOとPROCESS_INFORMATION構造体を作成・初期化し、作成されたプロセスの情報を格納。
- CreateProcess関数を呼び出し、起動するアプリケーションのパスやコマンドライン引数などの引数を渡す。
- CreateProcess関数の戻り値を確認し、プロセス作成が成功した場合はゼロ以外の値が返ります。
- PROCESS_INFORMATION構造体のhProcessやhThreadなどのメンバ変数を利用して、作成したプロセスのハンドルとメインスレッドのハンドルを取得することができる。
- CloseHandle関数を使用して、プロセスとスレッドのハンドルを閉じる。
CreateProcess関数を使用してプロセスを作成するサンプルを以下に示します。
#include <Windows.h>
#include <iostream>
int main()
{
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
// 创建进程
if (CreateProcess("C:\\Windows\\System32\\notepad.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
std::cout << "进程创建成功!" << std::endl;
// 关闭进程和线程句柄
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
else
{
std::cerr << "进程创建失败!" << std::endl;
}
return 0;
}
上述の例では、CreateProcess 関数を使用して新しいメモ帳プロセスを作成し、CloseHandle 関数を使用して作成されたプロセスとスレッドのハンドルを閉じました。ご自身のアプリケーションに適宜、パスやコマンドライン引数などのパラメータを修正してください。