Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   bei Start von Dos Programm flackert immer kurz das DOS Fenster auf (https://www.delphipraxis.net/175537-bei-start-von-dos-programm-flackert-immer-kurz-das-dos-fenster-auf.html)

zeras 29. Jun 2013 12:24

Betriebssystem: Win 7

bei Start von Dos Programm flackert immer kurz das DOS Fenster auf
 
Hallo,

ich starte ein externes DOS Programm zum Entpacken von Daten. Für dieses Programm gibt es weder eine Windows Umgebung noch eine DLL.
Das ganze funktioniert soweit, nur wird immer kurz das DOS Fenster aufgemacht und nach kurzer Zeit verschwindet dies wieder. Funktion ist OK, nur etwas unschön in einem professionellen Programm.
Starten tue ich das DOS Programm mit:

Delphi-Quellcode:

 if Show then begin
    StartupInfo.wShowWindow := SW_SHOWNORMAL
  end
  else begin
    StartupInfo.wShowWindow := SW_HIDE;
  end;

  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;

if CreateProcess(nil,
                   PChar( f + ' ' + para),
                   nil,
                   nil,
                   False,
                   NORMAL_PRIORITY_CLASS,
                   nil,
                   nil,
                   StartupInfo,
                   ProcessInfo) then begin
                     WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
                     CloseHandle(ProcessInfo.hProcess);
                     result := true;
                   end
                   else begin
                     ErrInfo := GetLastError;
                     ShowMessage('Fehler beim Prozess starten!'
                                 + #10#13
                                 + 'Errorcode = ' + IntToStr(ErrInfo));
                   end;
Hat jemand eine Idee, wie man das Aufflackern des DOS Fensters vermeidet?

DeddyH 29. Jun 2013 12:36

AW: bei Start von Dos Programm flackert immer kurz das DOS Fenster auf
 
Die StartupInfo-Struktur verfügt über ein Feld namens wShowWindow. Das MSDN sagt dazu:
Zitat:

wShowWindow

If dwFlags specifies STARTF_USESHOWWINDOW, this member can be any of the values that can be specified in the nCmdShow parameter for the ShowWindow function, except for SW_SHOWDEFAULT. Otherwise, this member is ignored.

For GUI processes, the first time ShowWindow is called, its nCmdShow parameter is ignored wShowWindow specifies the default value. In subsequent calls to ShowWindow, the wShowWindow member is used if the nCmdShow parameter of ShowWindow is set to SW_SHOWDEFAULT.

zeras 29. Jun 2013 12:49

AW: bei Start von Dos Programm flackert immer kurz das DOS Fenster auf
 
Zitat:

Zitat von DeddyH (Beitrag 1220037)
Die StartupInfo-Struktur verfügt über ein Feld namens wShowWindow. Das MSDN sagt dazu:

Danke für die Info. Ich habe mal oben im Quelltext einige Zeilen ergänzt, die ich vorher nicht gepostet hatte. Dort hatte ich schon Rücksicht genommen auf wShowWindow. Leider geht das auch nicht.
Gibt es noch andere Ideen?

DeddyH 29. Jun 2013 12:52

AW: bei Start von Dos Programm flackert immer kurz das DOS Fenster auf
 
Und wie sieht das dwFlags-Feld aus?

zeras 29. Jun 2013 13:00

AW: bei Start von Dos Programm flackert immer kurz das DOS Fenster auf
 
Zitat:

Zitat von DeddyH (Beitrag 1220042)
Und wie sieht das dwFlags-Feld aus?

Das hatte ich noch nicht beschrieben. Oben im Quelltext habe ich noch die Zeile eingefügt. Nun geht es.

Vielen Dank.

DeddyH 29. Jun 2013 13:08

AW: bei Start von Dos Programm flackert immer kurz das DOS Fenster auf
 
Ja, man muss die Doku auch vollständig lesen :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz