Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

EXE ausführen und warten (Pause) bis fertig

EXE ausführen und warten (Pause) bis fertig
16.09.2004 08:04:02
Dirk L
Hallo,
mein Problem ist, dass ich eine EXE-Datei ausführen muss (hab ich sogar hingebommen :-) ), die dann jede Menge Daten berechnet.
Leider kann es sein, dass je nach Daten das Programm mal 2sec oder 15sec braucht. Da ich die Daten dann weiterverarbeite, habe ich eine Pause von 25sec eingefügt.
Meine Frage: Gibt es eine Möglichkeit, so lange zu warten, bis die Datei fertig ausgeführt ist und dann erst das Makro weiterlaufen zu lassen ???
Über eine Antwort würde ich mich sehr freuen, denn 25sec sind echt ne lange Zeit, wenn der Chef hinter einem steht ;-)
Viele Grüße und Danke für Eure Antworten
Dirk

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hab was gefunden, aber das klappt bei mir nicht
16.09.2004 12:48:34
Dirk
www.herber.de/mailing/101800h.htm
AW: Hab was gefunden, aber das klappt bei mir nicht
16.09.2004 22:02:55
andre
Hallo Dirk,
das hab ich mal irgendwo gefunden
Option Explicit
Public Const PROCESS_QUERY_INFORMATION = &H400
Public Const WAIT_TIMEOUT = &H102&
Declare

Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Declare 

Function WaitForSingleObject Lib "kernel32" _
(ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long

Sub load()
Call WartenBisFertig("Notepad.exe")
SendKeys "%{TAB}"
SendKeys "Hallo"
End Sub


Sub WartenBisFertig(strEXE As String)
Dim ProcessID As Long
Dim hProcess As Long
Dim RetVal As Long
ProcessID = Shell(strEXE, vbNormalFocus)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessID)
Do
DoEvents
RetVal = WaitForSingleObject(hProcess, 50)
Loop Until RetVal <> WAIT_TIMEOUT
End Sub

Anzeige
klappt bei noch nicht richtig !!!!
17.09.2004 08:53:19
Dirk
Hallo Andre,
vielen Dank für den Code. Jetzt weiß ich auch, wieso das bei mir mit dem selben Code nicht geklappt hat. Ich hatte kein "Option Explicit" drüberstehen und da hat das Programm die´ganze Zeit gemotzt.
Seltsamer Weise scheint die "Pause" nicht so richtig zu funktionieren.
Die EXE-Datei produziert eine Datei, die ich aufrufe.
Aber ich bekomme immer die Datei vom letzten Aufruf angezeigt und nicht die neu erstellte Datei. (quasi als sei die Pause zu kurz)
Hast Du vielleicht noch nen Tip ???
Schade, dass es nicht ein "wait until" oder "break until"-Befehl gibt.
Schonmal Danke im Voraus und ein schönes WE
Gruß
Dirk

Mein Code:
Option Explicit
Public Const PROCESS_QUERY_INFORMATION = &H400
Public Const WAIT_TIMEOUT = &H102&
Declare

Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Declare 

Function WaitForSingleObject Lib "kernel32" _
(ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long

Sub load()
Call WartenBisFertig("GestOptimierung.exe")
'SendKeys "%{TAB}"
'SendKeys "Hallo"
End Sub


Sub WartenBisFertig(strEXE As String)
Dim ProcessID As Long
Dim hProcess As Long
Dim RetVal As Long
ProcessID = Shell(strEXE, vbHide)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessID)
Do
DoEvents
RetVal = WaitForSingleObject(hProcess, 50)
Loop Until RetVal <> WAIT_TIMEOUT
End Sub

Anzeige
AW: klappt bei noch nicht richtig !!!!
17.09.2004 21:58:40
andre
Hallo Dirk,
wenn Du noch eine zusätzliche Pause brauchst schaue Dir mal die sleep-Funktion an (Recherche / google hier im Forum.
MERCI für den Tipp
21.09.2004 08:01:10
Dirk
Hallo Andre,
nochmals vielen Dank für Deine Hilfe.
Alles Bestens.
Viele Grüße
Dirk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige