Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auf externes Programm warten... (https://www.delphipraxis.net/9000-auf-externes-programm-warten.html)

tjiel 16. Sep 2003 14:34


Auf externes Programm warten...
 
Hi !
Ich rufe in einer for-Schleife mit ShellExecute ein Programm auf. Die schleife läuft so ca. maximal 50mal durch und wandelt jedesmal ein ziemlich großes Images in ein ca. 10k großes .gif um (also jeden Menge Rechenzeit).
Wie kann ich es verhindern, dass die Schleife weiterläuft obwohl das Prog noch nicht fertig mit dem umwandeln ist. Ist das mit ShellExecute überhaupt möglich ?

Danke für eure Hilfe
tjiel

Christian Seehase 16. Sep 2003 14:46

Re: Auf externes Programm warten...
 
Moin Tjiel,

Zitat:

Zitat von tjiel
Ist das mit ShellExecute überhaupt möglich ?

Nein, dazu brauchst Du ShellExecuteEx oder CreateProcess, sowie noch "ein wenig" "schmückendes Beiwerk".

Schau Dich doch mal hier nach diesen Begriffen um, speziell auch in der Code-Library.
So etwas wie ExecAndWait haben wir mit Sicherheit hier schon mehrfach gehabt.

RomanK 16. Sep 2003 14:47

Re: Auf externes Programm warten...
 
Hoi dieser Post aus der Code-Library sollte helfen: http://www.delphipraxis.net/internal...ect.php?t=6983

tjiel 17. Sep 2003 07:55

Re: Auf externes Programm warten...
 
Ich hab mir den Beitrag http://www.delphipraxis.net/internal...ect.php?t=6983 mal angeschaut und muss erlich sagen: Das einzige was mir dazu einfällt ist: ???

Wie integriere ich das in ein bestehendes Project ? Mit welchen argumenten rufe ich die Funktionen auf ? Welche Funktion rufe ich auf ?
Fragen über Fragen :). Wäre super, wenn ihr mir da nen kleinen Ansatz geben könntet.

Christian Seehase 17. Sep 2003 11:42

Re: Auf externes Programm warten...
 
Moin Tjiel,

Assarbad hat da zwei Funktionen gezeigt, zum einen eine für ANSI zum anderen eine für Unicode (kenntlich am A bzw. W am Ende des Funktionsnamens)

Die Parameter bedeuten:

function ShellExecuteAndWaitA(hWnd: HWND; Operation, FileName, Parameters, Directory: PAnsiChar; ShowCmd: Integer; bWait: BOOL):
  • hWnd
    Handle eines Fenster, dass als Parent für eventuell anzuzeigende Meldungsdialoge dient. Hier kannst Du beispielsweise das Handle Deines Formulares angeben, oder aber auch 0.
  • Operation
    Was mit der im Parameter FileName angegebenen Datei gemacht werden soll. In der Shell werden sogenannte Verben verwendet, die das angeben. Für das Starten eines Programmes wird man da immer open angeben.
    Weiteres kannst Du am Besten im PSDK unter ShellExecuteEx nachlesen.
  • FileName
    Der Pfad zu der Datei.
    Hier kann man den Pfad zu einem Programm, aber auch den zu einer Datei angeben, deren Typ mit einem Programm verknüpft ist, dass die Datei öffnet, z.b. den Pfad zu einer TXT Datei (dann würde meist Notepad gestartet, und die angegebene Datei geladen werden)
    Gibst Du nur einen Dateinamen, aber keinen Pfad an, muss sich die Datei im Suchpfad befinden.
  • Parameters
    Eventuelle weitere Parameter die übergeben werden sollen
  • Directory
    Das Arbeitsverzeichnis
  • ShowCmd
    Wie das gestartete Programm angezeigt werden soll, also z.b. SW_NORMAL, wenn das Programm so gestartet werden soll, wie bei einem Doppelclick im Explorer.
    Hierzu findest Du näheres im PSDK unter ShellExecute
  • bWait
    True: es wird auf die Beendigung des gestarten Programmes gewartet
    False: Programm wird gestartet, und die Funktion kehrt sofort zurück
Du musst halt nur die Funktion irgendwo in Deinem Programm einbauen.
Unter Uses muss noch ShellAPI hinzugefügt werden.

Luckie 17. Sep 2003 11:45

Re: Auf externes Programm warten...
 
LOL. Er hat ausgerechnet das Monster von Oliver erwischt.

Versuch es mal hier mit: http://www.delphipraxis.net/internal...=createprocess

tjiel 17. Sep 2003 12:56

Re: Auf externes Programm warten...
 
ok funzt ! :D
Danke für die Hilfe


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 Uhr.

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