Aufgabe: Ich muss explorer.exe Prozess mit Sikuli neu starten.Wie man explorer.exe Prozess mit Sikuli (Jython) neu starten?
war meine Lösung Batch-Datei „RestartExplorerProcess.bat“ zu erstellen: mit
@echo off
echo Your desktop is being restored, Please wait. . .
ping -n 5 127.0.0.1 > NUL 2>&1
echo Killing process Explorer.exe. . .
taskkill /f /im explorer.exe
cls
echo Explorer.exe is killed!
echo.
echo Your desktop is now loading. . .
ping -n 5 127.0.0.1 > NUL 2>&1
echo.
ping -n 5 127.0.0.1 > NUL 2>&1
start %windir%\explorer.exe
echo Explorer.exe was successfully started!
exit
und dann rief ich es:
subprocess.Popen(Path)
Das Problem ist, dass ich das Ende des Neustart warten muß explorer.exe vor weiteren Aktionen. Ich fand 3 Lösungen:
1. p = subprocess.Popen(Path)
p.wait()
2. subprocess.check_call(Path)
3. os.system(Path)
aber alle von ihnen hat die gleiche Wirkung - Sikuli zeigt keine Fehler und hängt nur. Vielleicht liege ich falsch, aber es sieht so aus, als würde ich beim Starten von explorer.exe einen Verweis verlieren, und ein Ereignis über die Fertigstellung der Batch-Datei kann niemals ausgeführt werden.
Also meine Fragen sind:
- Wie kann ich explorer.exe Prozess mit gemeinsamen Sikuli (Jython) Methode neu starten?
- Und wie kann ich die Fertigstellung meiner Batch-Datei mit einer Methode, die höher beschrieben wurde warten?
Was verursacht den Hang? 'Popen' oder' p.wait() '? Wenn es 'p.wait()' ist, dann benutze die default 'wait()' Funktion und gib ein Zeitlimit an, das größer ist als die Zeit, die zum Starten von 'explorer.exe' benötigt wird. Verwenden Sie ein eindeutiges Bild für den Neustart von explorer.exe. – DuckPuncher