by Gerdi » 05 Jul 2022, 10:19
ich habe das Ganze noch in eine Funktion gesteckt:
Code: Select all
; Aufruf Beispiele:
; HK="
; Pfad:="c:\temp\Pfad mit Leerzeichen\Notiz.txt"
; Run_Wait(HK Pfad HK)
Run_Wait("explorer.exe") ; Startet ein Explorer-Fenster und wartet bis es geschlossen wird.
MsgBox, % Run_Wait("notepad.exe",,,PID) . " PID: " . PID . " beendet"
Run_Wait(Ziel,Arbeitsverz="",MaxMinHideUseErrorLevel="",ByRef VarPID="") ; wie RunWait, jedoch nur wenn der Prozess mindestens 1,6 Sekunden läuft!
; dafür werden auch Programme wie der Explorer unterstützt.
{
Run,% Ziel,% Arbeitsverz,% MaxMinHideUseErrorLevel,VarPID
Sleep 530
Process, Wait,%VarPID%,1 ; wartet bis Prozess sauber eingenistet und überprüft ob Prozess noch vorhanden.
if(ErrorLevel = 0) ; Die PID ist nicht mehr vorhanden
{ ; Zweig der beim Starten und überwachen des Explorers verwendet wird
VarId := WinExist("A") ; umschwenken aufs momentan Aktive Fenster
; SoundBeep ; Akustische Meldung umschwenken
WinWaitClose, ahk_id %VarId% ; warten auf das Schließen des Fensters
return Ziel
}
Process, WaitClose,%VarPID% ; warten auf schließen des Prozesses
if(ErrorLevel<>0) ; Errolevel auf 0 gesetzt
MsgBox %A_LineFile% at %A_LineNumber% nicht erwarteter Skriptzweig
return Ziel
}
Voraussetzungen: Prozess besteht für mindestens 1,6 Sekunden, danach besteht noch eine PID oder ID
Kritik, Verbesserungen willkommen.
ich habe das Ganze noch in eine Funktion gesteckt:
[code]; Aufruf Beispiele:
; HK="
; Pfad:="c:\temp\Pfad mit Leerzeichen\Notiz.txt"
; Run_Wait(HK Pfad HK)
Run_Wait("explorer.exe") ; Startet ein Explorer-Fenster und wartet bis es geschlossen wird.
MsgBox, % Run_Wait("notepad.exe",,,PID) . " PID: " . PID . " beendet"
Run_Wait(Ziel,Arbeitsverz="",MaxMinHideUseErrorLevel="",ByRef VarPID="") ; wie RunWait, jedoch nur wenn der Prozess mindestens 1,6 Sekunden läuft!
; dafür werden auch Programme wie der Explorer unterstützt.
{
Run,% Ziel,% Arbeitsverz,% MaxMinHideUseErrorLevel,VarPID
Sleep 530
Process, Wait,%VarPID%,1 ; wartet bis Prozess sauber eingenistet und überprüft ob Prozess noch vorhanden.
if(ErrorLevel = 0) ; Die PID ist nicht mehr vorhanden
{ ; Zweig der beim Starten und überwachen des Explorers verwendet wird
VarId := WinExist("A") ; umschwenken aufs momentan Aktive Fenster
; SoundBeep ; Akustische Meldung umschwenken
WinWaitClose, ahk_id %VarId% ; warten auf das Schließen des Fensters
return Ziel
}
Process, WaitClose,%VarPID% ; warten auf schließen des Prozesses
if(ErrorLevel<>0) ; Errolevel auf 0 gesetzt
MsgBox %A_LineFile% at %A_LineNumber% nicht erwarteter Skriptzweig
return Ziel
}
[/code]
Voraussetzungen: Prozess besteht für mindestens 1,6 Sekunden, danach besteht noch eine PID oder ID
Kritik, Verbesserungen willkommen.