イネマルのプログラミング備忘録

趣味プログラマのメモ

C++ CLI Processクラスから HINSTANCE を取得する

メモ

C++/CLI 環境で、Process クラスで起動したプログラムのインスタンスハンドルを取得する方法。
Handleプロパティが、そのまま HINSTANCE として扱える。

実装

// 「ペイント」を起動
auto proc = gcnew System::Diagnostics::Process();
proc->StartInfo->FileName = "mspaint.exe";
auto result = proc->Start() && proc->WaitForInputIdle();
if (!result)
{   // 起動に失敗
    return;
}

// インスタンスハンドルを取得
auto hInst = static_cast<HINSTANCE>(proc->Handle.ToPointer());