2010-12-07 12 views
4

Ich habe eine native C++ Windows-Anwendung starten, die zwei untergeordnete Prozesse mit dem folgenden Code startet -Wie Konsole-Anwendung mit Createprocess mit minimierten Hauptfenstern

if (!CreateProcess(NULL, // No module name (use command line) 
    cmdLine, // szCmdline, // Command line 
    NULL, // Process handle not inheritable 
    NULL, // Thread handle not inheritable 
    false, // Set handle inheritance to FALSE 
    CREATE_DEFAULT_ERROR_MODE | NORMAL_PRIORITY_CLASS // Process Create Flags 
    NULL, // Use parent's environment block 
    NULL, // workingDir, // Use parent's starting directory 
    &si, // Pointer to STARTUPINFO structure 
    &pi) // Pointer to PROCESS_INFORMATION structure 

mit allen Parametern in STARTUP Block 0. Dieser Code funktioniert fein beim Starten der Prozesse. Allerdings muss ich in der Lage sein, die Windows C++ - Konsolenanwendungen mit minimierten Fenstern zu starten.

Wenn ich CREATE_NO_WINDOW zu den Process Create Flags hinzufügen, kann ich die Prozesse ohne Fenster starten. Dies wird inakzeptabel sein.

In meiner Forschung scheint es keine Möglichkeit zu geben, eine Konsolenanwendung in einem minimierten Modus zu öffnen. Ist das richtig?

Ja, ich weiß, dass ich die untergeordneten Anwendungsfenster in ihrem eigenen Prozess minimieren könnte, die anderen Programmierer im Team ziehen es jedoch vor, dies nicht zu tun.

Antwort

7

Sie müssen in der STARTUPINFO Struktur angeben, dass Sie Ihre Konsolenfenster wollen zunächst minimiert werden:

ZeroMemory(&si); 
si.cb = sizeof(STARTUPINFO); 
si.dwFlags = STARTF_USESHOWWINDOW; 
si.wShowWindow = SW_MINIMIZE; 
+0

, die nur auf native Windows-Anwendungen arbeitet, nicht Modus apps trösten. –

+0

@Hans, wirklich? Die Dokumentation hat einen speziellen Fall für "GUI-Prozesse". Was ist der allgemeine Fall, wenn Konsolen-Apps nicht unterstützt werden? :) –

+0

Nicht sicher, was Sie fragen. Der Wert wird an das Argument WinMain, nCmdShow übergeben. Konsolenmodus-Apps haben kein WinMain. Viele GUI-Apps ignorieren es auch. –

Verwandte Themen