Maison >développement back-end >Tutoriel Python >Exemple de code pour implémenter la fonction d'arrêt programmé de Windows en Python
Ce sont les premiers robots qui m'ont présenté ce nouvel ami, Python Même si je ne me connaissais que depuis quelques jours, j'ai ressenti un sentiment inexplicable de compréhension tacite. Chaque fois que vous ne trouvez pas d’idée ailleurs, vous pouvez toujours trouver une solution en Python. L'arrêt automatique peut être utilisé lors du téléchargement de fichiers volumineux ou de l'exécution de programmes. Je viens d'écrire un petit programme pour l'arrêt automatique de Windows. Le programme est trop simple, alors traitez-le simplement comme un jeu. Bien sûr, il existe de nombreux domaines à améliorer. Texte ci-dessous :
#ui production :
Comme d'habitude, l'auteur a utilisé Qt pour produire l'interface utilisateur requise, y compris les composants label, label_2, label_3, lable_4, lineEdit, lineEdit_2, pushButton. la disposition est la suivante
Les deux modifications de ligne attendent que l'utilisateur entre l'heure d'arrêt souhaitée. L'étiquette suivante est utilisée pour afficher les informations de retour après l'opération. pushButton est utilisé pour soumettre des commandes. La production de l'interface utilisateur est terminée.
ui converti en fichier py :
Ici, l'auteur a installé PyQt5 et ajouté des variables d'environnement . Par conséquent, la commande cmd convertie (cd dans le répertoire où se trouve ui) :
pyuic5 shut.ui -o shut.py
Après une exécution réussie, le fichier shutdown.py est généré dans le répertoire où se trouve ui.
#Fenêtre d'affichage :
Vous ne pouvez pas voir la fenêtre lors de l'exécution du fichier py directement généré. Nous devons ajouter du contenu nécessaire pour afficher notre fenêtre :
Code Add <.>
import sysen haut et enfin ajoutez
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_())puis exécutez shutdown.py pour voir la fenêtre. #Implémentation de la fonction : Pensez à la fonction souhaitée du programme pour que Windows s'arrête automatiquement. La commande cmd est un bon choix. L'auteur a donc cherché un moyen d'exécuter des commandes cmd en python :
os.popen('at 22:30 shutdown -s')Appelez cmd pour exécuter la commande. Parmi eux, 22 et 30 sont des données en attente de saisie par l'utilisateur. Par conséquent, les h et m correspondants doivent être remplacés par les nombres légaux obtenus dans les deux lignesEdit. Utilisez la méthode pour obtenir le contenu de lineEdit :
h = self.lineEdit.text() m = self.lineEdit_2.text()Remplacez ensuite les heures et les minutes dans la commande d'exécution par h, m Ensuite, il y a la partie pushButton. Ajoutez un écouteur pour l'événement pushButton
self.pushButton = QtWidgets.QPushButton(shut,clicked=self.sd)Parmi eux, self.sd est l'opération qui doit être effectuée après le déclenchement de l'événement. #Code complet :
# -*- 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_())Après l'exécution, la fenêtre d'opération illustrée ci-dessous apparaîtra # Effet d'exécution :
Exécutez shutdown.py, entrez 12 et 53 et cliquez sur définir. Ensuite, nous vérifions le plan de tâches : . Il s'avère que la tâche est déjà dans Planifié. Cliquez sur Supprimer pour actualiser le plan de tâches. La tâche est supprimée avec succès et la fonction est implémentée Bien entendu, cela ne peut être exécuté que si l'utilisateur installe Python et installe les composants associés. Si vous souhaitez l'utiliser sur n'importe quelle fenêtre, vous avez besoin des opérations suivantes. #Packaging : L'auteur utilise le composant Pyinstaller de Python pour l'empaquetage. Après cd dans le répertoire où se trouve Shut.py, exécutez la commande cmd :
pyinstaller -w shut.pyÀ ce stade, un dossier dist est généré dans le répertoire où se trouve Shut.py. Chemin d’accès exe généré. dist>>shut (nom du fichier de code source Python)>>shut.exe. Si tout se passe bien, double-cliquez sur shutdown.exe pour afficher la même fenêtre et la même opération que le code source précédent. De cette façon, vous pouvez envoyer l'intégralité du répertoire d'arrêt à vos amis. Ils peuvent ensuite utiliser votre programme en double-cliquant sur shutdown.exe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!