in Python 2.7 verlassen, ich versuche zu:Python subprocess Befehl Echo zu laufen und das Fenster offen
- Ping eine IP-Adresse mit einem subprocess Befehl ohne ein Konsolenfenster zeigt.
- Wenn der Ping-Befehl subproccess etwas anderes als 0 zurückgibt, alarmiert die Benutzer, dass der Ping
- Alarm den Benutzer mit einem Echo-Befehl über ein subproccess fehlgeschlagen
Schritte 1 und 2 sind fertig. Ich habe Probleme mit Schritt 3. Wenn es eine bessere Möglichkeit gibt, dies zu tun als das, was ich versuche, bin ich offen für Vorschläge. Ich wollte einfach und schnell eine kurze Warnung für den Benutzer anzeigen.
Das große Problem mit Schritt 3 ist das Konsolenfenster erscheint, aber verschwindet sehr schnell. Idealerweise möchte ich das Fenster offen lassen, bis ein Benutzerfeedback empfangen wird, aber an dieser Stelle nehme ich auch eine Zeitüberschreitung. Hier
ist, was ich habe:
subprocess.call(['echo', 'One or more of the IPs failed to respond to their ping. Check Logs', ' & pause'])
Das Endergebnis ich suche ist der Benutzer bei ihrer täglichen Geschäft auf ihren PC, ein Pop-up auf, dass sie einen geplanten Ping-Versuch erzählt das Ziel nicht erreicht hat, gibt der Benutzer eine Rückmeldung, um das Popup zu schließen.
in keinem Zusammenhang: Sie könnten ein GUI-Fenster verwenden, um die Benachrichtigung zB anzuzeigen, 'tkMessageBox.showwarning()' statt starten 'echo' Befehl in einer neuen Windows-Konsole. – jfs
Ich habe ein paar Nachforschungen angestellt und gesehen, dass das eine Option war, aber ich dachte, dass das Senden eines Echo-Befehls schnell und einfach wäre, da ich bereits gelernt habe, wie man den Unterprozessbefehl verwendet. Aber vielleicht war es nicht einfacher! Ich werde das nächste Mal nachsehen müssen, wenn ich ein Fenster brauche. – Rdemps
Wenn Sie nicht wissen, wie man 'tkMessageBox.showwarning()'; Frag einfach (als separate Frage). Ich würde versuchen, 'tkMessageBox zu importieren; tkMessageBox.showwarning ('title', 'text') 'und stellen Sie sicher, dass es nicht für Sie funktioniert. – jfs