起動フラグを STARTF_USESHOWWINDOW および SW_HIDE に設定して CreateProcess() を使用して、ウィンドウを非表示にしてバックグラウンドでアプリケーションを起動しています。スケジュールされたメンテナンス タスクを実行するためにこれを行っていますが、Windows に煩わされたくありません。
ほとんどの場合、ウィンドウは非表示になっていますが、プログラムのウィンドウがすぐ目の前に表示される場合があります (たとえば、Google の Chrome - さまざまなアプリでテストを開始して、これが 1 回限りの問題であったかどうかを確認しましたが、違います...)。
これは Windows XP ではあまり発生しませんが、Vista では頻繁に発生します。
行方不明のフラグはありますか?ウィンドウを非表示にしてプロセスを作成する他の方法はありますか?
ありがとう!
私のサンプルコードは次のとおりです。
char *ProgramName
STARTUPINFO StartupInfoF;
PROCESS_INFORMATION ProcessInfoF;
memset(&StartupInfoF, 0, sizeof(StartupInfoF));
memset(&ProcessInfoF, 0, sizeof(ProcessInfoF));
StartupInfoF.cb = sizeof(StartupInfoF);
StartupInfoF.wShowWindow = SW_HIDE;
StartupInfoF.dwFlags = STARTF_USESHOWWINDOW;
if (CreateProcess(ProgramName,
"",
0,
0,
FALSE,
DETACHED_PROCESS,
0,
0,
&StartupInfoF,
&ProcessInfoF) == FALSE)
{
// error
}
else
{
// OK
}