Announcement

Collapse
No announcement yet.

auf ShellExecute warten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • auf ShellExecute warten

    Hallo Jungs
    Ich bräuchte ein bisschen Hilfe.
    Ich erstelle ein Programm das eine externe (selbstgenerierte) Batch-datei aufruft.

    in der batch-datei steht dann folgendest:
    Code:
    resgen1.exe Resource1.resx
    ...
    ...
    ...
    resgen1.exe 10.resx
    dabei werden "*.resource" dateien erstellt.

    das klappt soweit ganz gut und der Aufruf klappt auch.
    Code:
    ShellExecute(HANDLE, 'open', PChar(ExtractFilePath(ParamStr(0))+gcBatFileName),nil,nil,SW_HIDE);
    aber wenn ich direkt nach dem ShellExecute eine Abfrage mach, ob die "resource" - dateien vorhanden sind damit er mir dann den ordner öffnet macht ers nicht.

    Er Ruft anscheinend die Bat-Datei auf und prüft sofort ob die Dateien da sind, ohne abzuwarten bis die BATCH-datei fertig ist.

    wenn ich shellexecute auf "SW_Normal" setzte dann führt er alles aus. aber sobald ich es wieder auf "SW_Hide" setzte passiert nichts mehr.

    Wenn ich nach dem Shellexecute ein slee(2000) einfüg gehts auch. aber ich will mich nicht drauf verlassen, dass das Batch-Skript höchstens 2sec dauert!

    Wie kann ich auf ShellExecute warten, bis die Batch-datei fertig ist?!

    danke schonmal im vorraus

    claudi

  • #2
    Hallo Claudi,

    das funktioniert mit

    Win32Check( CreateProcess( ... ) )

    wobei CreateProcess die Batchdatei ausführen würde und Win32Check den Prozess überwacht und den Rückkehrwert übernimmt (True oder False), auf jeden Fall aber wartet bis der aufgerufene Prozess beendet ist.

    Tschüß
    Lothar

    Comment

    Working...
    X