Aufblenden der Konsole vermeiden
-
Hallo!
Ich habe eine Win32-Applikation geschrieben, die ich von einem anderen Programm (mit GUI) aufrufe. Dabei oeffnet sich für die Dauer des Programmdurchlaufes immer die Konsole.
Gibt es einen Möglichkeit unter Windows, dieses Aufblenden zu vermeiden? Oder muss ich vieleicht ein anderen Projekttyp verwenden?
Es muss dann aber trotzdem möglich sein, dem Programm Argumente zu übergeben (argv[]).Für Tipps bin ich sehr dankbar!
-
Wie rufst du die *.exe denn auf. Nimm einfach ShellExecute(); und dann bei nShowCmd SW_HIDE übergeben.
Hoffe war verständlich und konnte dir helfen.
MfG schirrmie
-
Ich rufe das Programm mittels einer API-Funktion auf, die in der Anderen Applikation zur Verfügung gestellt wird. Am Aufruf selber kann ich also nichts ändern.
Ich dachte nur, ich das in meinem Programm ändern könnte (irgenwelche Argumente beim erstellen z.B.)
-
Nein das ist nicht möglich. Entweder der Aufrufer legt gleich fest, dass das Fenster versteckt ist oder du musst damit Leben, dass es kurz aufblendet und du es erst versteckst, wenn das Programm im Fenster ausgeführt wird.
-
Hab' ich das richtig verstanden: du darfst den Quelltext der anderen Applikation nicht ändern
, oder könnest du sie nicht neu compilieren?
Sonst könntest du doch die Aufrufmethode/-funktion in der anderen Applikation ändern...
-
Ist das aus dem anderen Progrmm aufzurufende Programm ein Win32-Konsolenprogramm oder ein Win32-GUI-Programm ? Nur die ersteren öffnen automatisch (ohne AllocConsole() im Programm) eine Konsole, die letzteren bloß ihr (Haupt-)Fenter, wenn sie eins haben (kann auch versteckt sein, z.B. mit
HWND hwnd; /* Fensterhandle */ /* ... */ HideWindow(hwnd);
wobei das Handle auch ein Fenster eines anderen Prozesses bezeichnen kann
, unter Außerachtlassung von Sicherheitsfragen
).
Hoffentlich sind diese Informationen nützlich zur Lösung des Problems.
Mit freundlichen Grüßen
WirklicheKonsole