Externes Programm ausführen - Fenster verstecken

Antworten
lipet
Beiträge: 2
Registriert: So 23. Mär 2008, 15:43

Externes Programm ausführen - Fenster verstecken

Beitrag von lipet »

Hallo,

ich führe ein externes Programm (Konsolenanwendung unter Windows) aus und möchte, dass die Konsole nicht angezeigt wird.

Ein Auszug aus der Progammierung:
....
var
AProcess: TProcess;
...
begin
...
AProcess.CommandLine := befehl;
AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];

AProcess.Execute;

...

Alles funktioniert einwandfrei. Mir gelingt es nur nicht, die entsprechenden TShowWindowsOptions 'swoHIDE' einzubinden, damit das Hauptfenster versteckt ist.

Wie lautet die richtige Befehlssyntax?

Danke

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

poNoConsole in den Options und .ShowWindow := swoNone sollten das bewirken was du willst.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

lipet
Beiträge: 2
Registriert: So 23. Mär 2008, 15:43

Beitrag von lipet »

Danke für die schnelle Antwort.

Ich habe noch eine ergänzende Frage:

Das externe Programm wird in einer Schleife mehrfach hintereinander ausgeführt (konkret: ich verschlüssele pdf-Datien mit openssl).
Ich möchte jetzt bei jedem Durchlauf in meinem Formular eine entsprechende Information als Fortschrittsanzeige erhalten.
Wenn ich in die Schleife
Label3.Caption:='Datei xyz wird verschlüsselt';
einbaue, führt das nicht zum gewünschten Erfolg, da das entsprechende Feld nicht fortlaufend aktualisiert wird, sondern letztlich nur die letzte Aktion angezeigt wird.

Peter

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Du musst mit Application.Processmessages die Fensterschleife einmal durchlaufen lassen damit die Anzeige aktualisiert werden kann.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten