Ich habe einen kleinen Python-app, die ich pyInstaller auf verwendet, um eine exe-Datei zu erstellen:Wie zu zwingen, meinen Python-made exe beenden
import subprocess
try:
taskCommand = 'tasklist /FI "ImageName eq pc-client.exe"'
reply = subprocess.Popen(taskCommand, stdout = subprocess.PIPE).communicate()[0]
for line in reply.split("\n"):
if line.startswith("pc-client.exe"):
PID = line.split()[1]
print PID
except:
pass
try:
killCommand = ("TASKKILL /f /t /PID " + PID)
subprocess.Popen(killCommand, stdout = subprocess.PIPE).communicate()[0]
except:
pass
try:
print "Restarting Papercut Client..."
subprocess.Popen(r"\\server\path\to\file\filename.exe", stdout = subprocess.PIPE).communicate()[0]
except:
pass
sys.exit()
Wenn die exe ausgeführt werden, öffnet es in den Fenstern Befehlsfenster, wird seinen Code ausführen (es ist nicht interaktiv) und dann möchte ich das Fenster verschwinden, wenn es fertig ist!
Was sollte ich am Ende meines Python-Code setzen, um das Fenster zu schließen, wenn es abgeschlossen ist. Ich habe versucht os.quit(), os._exit(), sys.quit() & sys.exit(), aber keiner von ihnen tatsächlich das Fenster zu schließen!
Wie ich eine Exe von meinem Code erstellen, sollte ich etwas anderes verwenden? Ich kann nicht mit dem NOCONSOLE Flag kompiliert, wie es sie braucht, um tatsächlich die Befehle ausführen ...
Dank.
Ach, das macht Sinn ... So kann ich den übergeordneten Prozess (mein Code), wenn das Kind Prozess (die .exe) abzutöten hat begonnen lass es laufen? – user3514446
Ja, aber das Befehlsfenster wird nicht verschwinden, weil Sie die exe "von der Eingabeaufforderung" über einen Unterprozessaufruf erzeugt haben. Es sei denn, ich vermisse etwas oder interpretiere das Ziel falsch. – The4thIceman