Es waren die ersten paar Crawler, die mich diesem neuen Freund, Python, vorstellten. Obwohl ich mich erst seit ein paar Tagen kannte, verspürte ich ein unerklärliches Gefühl des stillschweigenden Verständnisses. Wenn Sie woanders keine Idee finden, können Sie in Python immer eine Lösung finden. Das automatische Herunterfahren kann beim Herunterladen großer Dateien oder beim Ausführen von Programmen verwendet werden. Das Programm ist zu einfach, also betrachten Sie es einfach als Spiel. Text unten:
#UI-Produktion:
Wie üblich verwendete der Autor Qt, um die erforderliche Benutzeroberfläche zu erstellen, einschließlich der Komponenten label, label_2, label_3, label_4, lineEdit_2 und pushButton Das Layout ist wie folgt:
Die beiden Zeilenbearbeitungen warten darauf, dass der Benutzer die gewünschte Abschaltzeit eingibt. Das folgende Label wird verwendet, um die Rückgabeinformationen nach dem Vorgang anzuzeigen. pushButton wird zum Senden von Befehlen verwendet. Die UI-Produktion ist abgeschlossen.
UI in Py-Datei konvertiert:
Hier hat der Autor PyQt5 installiert und Umgebungsvariablen hinzugefügt . Daher der konvertierte cmd-Befehl (cd in das Verzeichnis, in dem sich ui befindet):
pyuic5 shut.ui -o shut.py
Nach erfolgreicher Ausführung wird die Datei „shutdown.py“ in dem Verzeichnis generiert, in dem sich ui befindet.
#Anzeigefenster:
Sie können das Fenster nicht sehen, wenn Sie die direkt generierte py-Datei ausführen. Wir müssen einige notwendige Inhalte hinzufügen, um unser Fenster anzuzeigen:
Code hinzufügen
import sys
nach oben und schließlich
if name == 'main': app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = Ui_x()//其中Ui_x为生成的class名 ui.setupUi(Form) Form.show() sys.exit(app.exec_())
hinzufügen und dann „shutdown.py“ ausführen, um das Fenster anzuzeigen.
#Funktionsimplementierung:
Überlegen Sie sich die gewünschte Funktion des Programms, um Windows automatisch herunterzufahren. Der Befehl cmd ist eine gute Wahl. Daher suchte der Autor nach einer Möglichkeit, cmd-Befehle in Python auszuführen:
os.popen('at 22:30 shutdown -s')
Rufen Sie cmd auf, um den Befehl auszuführen. Darunter sind 22 und 30 Daten, die auf Benutzereingaben warten. Daher sollten die entsprechenden h und m durch die in den beiden Zeilenbearbeitungen erhaltenen legalen Zahlen ersetzt werden. Verwenden Sie die Methode, um den Inhalt der Zeile zu erhalten:
h = self.lineEdit.text() m = self.lineEdit_2.text()
Dann ersetzen Sie die Stunden und Minuten im Ausführungsbefehl durch h, m
Dann gibt es den PushButton-Teil. Fügen Sie einen Listener für das PushButton--Ereignis click hinzu.
self.pushButton = QtWidgets.QPushButton(shut,clicked=self.sd)
Unter diesen ist self.sd der Vorgang, der ausgeführt werden muss, nachdem das Ereignis ausgelöst wurde.
#Vollständiger Code:
Einige wichtige Teile wurden beschrieben. Was den Teil mit den Rückgabeinformationen betrifft, wird der Autor hier nicht näher darauf eingehen. Der vollständige Code für das automatische Herunterfahren von Windows ist unten aufgeführt:
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'shut.ui' # # Created: Mon Mar 20 18:10:31 2017 # by: PyQt5 UI code generator 5.2.1 # # WARNING! All changes made in this file will be lost! import sys import os from PyQt5 import QtCore, QtGui, QtWidgets class Ui_shut(object): flag = True def setupUi(self, shut): shut.setObjectName("shut") shut.resize(411, 170) shut.setFixedSize(411,170) self.label = QtWidgets.QLabel(shut) self.label.setGeometry(QtCore.QRect(40, 50, 41, 51)) self.label.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.label.setObjectName("label") self.lineEdit = QtWidgets.QLineEdit(shut) self.lineEdit.setGeometry(QtCore.QRect(70, 50, 71, 41)) self.lineEdit.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.lineEdit.setObjectName("lineEdit") self.label_2 = QtWidgets.QLabel(shut) self.label_2.setGeometry(QtCore.QRect(150, 60, 31, 31)) self.label_2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.label_2.setObjectName("label_2") self.lineEdit_2 = QtWidgets.QLineEdit(shut) self.lineEdit_2.setGeometry(QtCore.QRect(180, 50, 71, 41)) self.lineEdit_2.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.lineEdit_2.setObjectName("lineEdit_2") self.label_3 = QtWidgets.QLabel(shut) self.label_3.setGeometry(QtCore.QRect(260, 60, 31, 31)) self.label_3.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.label_3.setObjectName("label_3") self.pushButton = QtWidgets.QPushButton(shut,clicked=self.sd) self.pushButton.setGeometry(QtCore.QRect(290, 50, 101, 41)) self.pushButton.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.pushButton.setObjectName("pushButton") self.label_4 = QtWidgets.QLabel(shut) self.label_4.setGeometry(QtCore.QRect(0, 120, 411, 31)) self.label_4.setFont(QtGui.QFont("Roman times",10,QtGui.QFont.Bold)) self.label_4.setObjectName("label_4") self.retranslateUi(shut) QtCore.QMetaObject.connectSlotsByName(shut) def retranslateUi(self, shut): _translate = QtCore.QCoreApplication.translate shut.setWindowTitle(_translate("shut", "Auto Shutdown by dearvee")) self.label.setText(_translate("shut", "At:")) self.label_2.setText(_translate("shut", "H")) self.label_3.setText(_translate("shut", "M")) self.label_4.setText(_translate("shut", "Please input time of shutdown~")) self.pushButton.setText(_translate("shut", "Set")) def sd(self,shut): h = self.lineEdit.text() m = self.lineEdit_2.text() if self.flag: self.flag = False try: os.popen('at '+h+':'+m+' shutdown -s') self.label_4.setText('Success! the system will shutdown at today '+h+':'+m+'.') self.pushButton.setText('Remove all') self.lineEdit.clear() self.lineEdit_2.clear() except: self.label_4.setText('Something is wrong~') else: self.flag = True try: os.popen('at /delete /yes') self.label_4.setText('Success! already removed~') self.pushButton.setText('Set') self.lineEdit.clear() self.lineEdit_2.clear() except: self.label_4.setText('Something is wrong~') if name == 'main': app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = Ui_shut() ui.setupUi(Form) Form.show() sys.exit(app.exec_())
Nach dem Ausführen erscheint das unten gezeigte Betriebsfenster
# Ausführungseffekt:
Shutdown.py ausführen, 12 und 53 eingeben und auf „Setzen“ klicken. Dann überprüfen wir den Aufgabenplan:
Es wurde festgestellt, dass sich die Aufgabe bereits in „Geplant“ befindet. Klicken Sie auf Entfernen, um den Aufgabenplan zu aktualisieren.
Die Aufgabe wurde erfolgreich entfernt und die Funktion implementiert
Dies kann natürlich nur ausgeführt werden, wenn der Benutzer Python installiert und zugehörige Komponenten installiert. Wenn Sie es in einem beliebigen Fenster verwenden möchten, müssen Sie die folgenden Vorgänge ausführen.
#Packaging:
Der Autor verwendet die Pyinstaller-Komponente von Python zum Packen. Führen Sie nach dem Wechseln in das Verzeichnis, in dem sich Shutdown.py befindet, den Befehl cmd aus:
pyinstaller -w shut.py
Zu diesem Zeitpunkt wird ein Dist-Ordner in dem Verzeichnis generiert, in dem sich Shutdown.py befindet. Generierter Exe-Pfad. dist>>shut (Python-Quellcode-Dateiname)>>shut.exe Wenn alles gut geht, werden beim Doppelklicken auf Shut.exe das gleiche Fenster und derselbe Vorgang wie beim vorherigen Quellcode angezeigt. Auf diese Weise können Sie das gesamte Shutdown-Verzeichnis an Ihre Freunde senden. Anschließend können sie Ihr Programm verwenden, indem sie auf „shutdown.exe“ doppelklicken.
Das obige ist der detaillierte Inhalt vonBeispielcode für die Implementierung der Funktion zum geplanten Herunterfahren von Windows in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!