2017-09-10 1 views
0

Ich habe versucht, ein Python-Programm zu schreiben, um meinen Computer automatisch herunterzufahren. Das Modul "Notification Message Box" verwendet tkinter code wie in TutorialPoint. Das Popup wird Ja/Nein Optionen anzeigen. mit dem aktuellen Code, nur wenn ich die Taste "Nein" drücken, wird das System heruntergefahren.Python Aktion ohne Popup-Antwort

Also sollte es stattdessen automatisch den Abschaltvorgang starten, ohne dass ich etwas anklicke. Zur gleichen Zeit, wenn ich auf "Ja" klicke, sollte der Shutdown-Prozess aufhören.

Dies ist der Code. Wie erreiche ich das?

import MessageBox 
def PopUp(Title, Msg, Type='Info'): 
    Title = str(Title) 
    Msg = str(Msg) 

    root = tk.Tk() 
    root.withdraw() 
    if Type == "Question": 
     response = MessageBox.askquestion(Title, Msg) 
     print("question", response) 
     return response 
    elif Type == "TryAgain": 
     response = MessageBox.askretrycancel(Title, Msg) 
     print("try again", response) 
     return response 
    else: 
     print("Incorrect Type selected.") 
     response = MessageBox.showinfo(Title, Msg) 
     print("info", response) 
     return response 

def main(): 
    CurrentTime = int(time.strftime('%H')) 
    if CurrentTime > 22 or CurrentTime < 5: 
     msg = ("The Time is %s hours. Abort Automatic Shutdown?" % CurrentTime) 
     resp1 = Notification.PopUp("Auto Shut Down", msg, Type="Question") 
     print('Response from Notification is %s' % resp1) 

     if resp1 == 'no': 
      closeApps() 
      shutDown() 
     else: 
      print('ShutDown abortered by user.') 

if __name__ == '__main__': 
    main() 

Antwort

0

Für die closeApps(), könnten Sie psutil Modul verwenden,

import psutil 
for process in psutil.process_iter(): 
    if process.name()=="Application.exe": 
     process.kill() 

Die psutil.process_iter() gibt eine Liste aller laufenden Prozesse.

Hinweis: Ersetzen Sie "Application.exe" durch den Namen der zu schließenden Anwendung.

Was shutDown(), müssen Sie einfach os verwenden Terminal-Befehle zu geben:

import os 
os.system("shutdown /s") 
+0

Dank. Ich habe bereits eine Funktion für CloseApps() und ShutDown(), aber mein Problem ist, dass die Shutdown automatisch starten sollte, aber wenn ich abbrechen möchte, sollte ich noch in der Lage sein ... – Naveen

+0

Der Terminalbefehl 'shutdown/a' kann wird verwendet, um das Herunterfahren abzubrechen. siehe https://stackoverflow.com/questions/2358929/prevent-windows-7-shutdown – RottenCandy

Verwandte Themen