2

メインプロセスのソケットリスナー/サーバーとして子プロセスを作成する必要があり、この呼び出しを使用して目標を達成します。

bSuccess = CreateProcessA(NULL, 
            cmdLineArgs,   // command line 
            NULL,          // process security attributes 
            NULL,          // primary thread security attributes 
            TRUE,          // handles are inherited 
            HIGH_PRIORITY_CLASS,             // creation flags 
            NULL,          // use parent's environment 
            NULL,          // use parent's current directory 
            &siStartInfo,  // STARTUPINFO pointer 
            &piProcInfo);  // receives PROCESS_INFORMATION 

子プロセスのウィンドウが表示されないようにするために何をする必要があるかを誰かが述べることができますか?メインの中央プロセスが子を作成するたびに、プロセスウィンドウを表示することは望ましくありません。

後で編集私が使用した:

HWND hWnd = GetConsoleWindow();
if (hWnd != 0) 
{       
    ShowWindow( hWnd, SW_HIDE);
}

子プロセスのメイン関数ですが、ウィンドウがほんの一瞬しか表示されないため、これは実際には最善の解決策ではありません。複数の子プロセスがあり、それぞれが画面上でバブリングする独自のウィンドウを持っている場合でも、それはエレガントではありません。コンパイラが「コンソールレス」出力を生成するために設定するフラグはありますか?

VisualStudio2010を使用しています。

4

3 に答える 3

8

CREATE_NO_WINDOWフラグはまさにこの目的のために使用されます。

dwCreationFlags次のようにビットマスクに追加できます。

bSuccess = CreateProcessA(NULL, 
            cmdLineArgs,   // command line 
            NULL,          // process security attributes 
            NULL,          // primary thread security attributes 
            TRUE,          // handles are inherited 
            HIGH_PRIORITY_CLASS | CREATE_NO_WINDOW,  // creation flags 
            NULL,          // use parent's environment 
            NULL,          // use parent's current directory 
            &siStartInfo,  // STARTUPINFO pointer 
            &piProcInfo);  // receives PROCESS_INFORMATION 
于 2012-12-19T14:44:04.037 に答える
3

STARTUPINFOにパラメータとして提供する構造を使用する必要がありますCreateProcess

STARTUPINFO StartInfo= {sizeof(StartInfo)};
StartInfo.dwFlags= STARTF_USESHOWWINDOW;
StartInfo.wShowWindow= SW_HIDE;
于 2012-12-19T14:44:34.083 に答える
1
siStartInfo.dwFlags &= STARTF_USESHOWWINDOW;
siStartInfo.wShowWindow = SW_HIDE;

それをする必要があります

http://msdn.microsoft.com/en-us/library/windows/desktop/ms686331(v=vs.85).aspxも参照してください。

于 2012-12-19T14:45:44.033 に答える