0

C++ コードからプロセスを開始する必要があります。私は CreateProcess() 関数を使用しており、startupinfo 構造体に次のフラグを設定しました。しかし、それでもコマンドプロンプトが表示され、続行するには手動で閉じる必要があります。プロセスの起動時にこのコマンド プロンプトを非表示にする方法を教えてください。

si.cb = sizeof(STARTUPINFO);
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;

create process 呼び出しは次のようになります。

CreateProcess( NULL,   // No module name (use command line)
        exe,            // Command line
        NULL,           // Process handle not inheritable
        NULL,           // Thread handle not inheritable
        FALSE,          // Set handle inheritance to FALSE
        CREATE_NEW_CONSOLE,              // No creation flags
        NULL,           // Use parent's environment block
        NULL,           // Use parent's starting directory 
        &si,            // Pointer to STARTUPINFO structure
        &pi );

exe は、開始するプロセス名を含む文字列です。

プロセスの起動時にこのコマンド プロンプトを非表示にする方法を教えてください。ここで説明されている方法を試しましたが、うまくいきません。Windows 7 システムを使用しています。

ありがとう、ラケシュ。

4

2 に答える 2

1

あなたは合格CREATE_NEW_CONSOLEしていて、新しいコンソール ウィンドウは必要ありません。答えは完全に自明のようです。それでも、他のプロセスがコンソール自体を作成する場合は、それを防ぐことはできません。そのプロセスを Explorer から開始するとどうなりますか?

于 2012-09-11T10:49:45.303 に答える
1

MSalters が言うように、これCREATE_NEW_CONSOLEはあなたが望むものではありません。しかし、おそらく関数CREATE_NO_WINDOWにも渡したいと思うでしょう。フラグとして渡すことができるものについては、 MSDN のドキュメントCreateProcessを参照してください。CreateProcess

于 2012-09-11T11:03:02.643 に答える