実際のプログラムを検索して実行する簡単なランチャーを作成しました。これは正常に動作しますが、問題が 1 つあります。Windows では、「砂時計付きのポインター」カーソルが約 1 秒間表示されます。プログラムを直接起動した場合、これは発生しません。
設定してみsinfo.dwFlags = STARTF_FORCEOFFFEEDBACK
ましたが、これは役に立ちませんでした。これは、何らかの方法でカーソルを無効にする必要があるのは私のプログラムであり、起動したプログラムがそれをうまく行うためだと思います(適切なウィンドウを作成するなど)。
これは、私のアプリケーションの関連コードです。スレッドやその他の派手なものはありません (プログラムの唯一の目的は、別のプログラムを起動し、呼び出し元に終了コードを渡すことです)。
STARTUPINFO sinfo = {0};
PROCESS_INFORMATION pinfo = {0};
if (!CreateProcess(program, buf, NULL, NULL, FALSE, 0, NULL, NULL, &sinfo, &pinfo)) {
Fail("Could not launch Vim");
}
if (WaitForSingleObject(pinfo.hProcess, INFINITE) == WAIT_FAILED) {
Fail("WaitForSingleObject");
}