> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드

Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드

高洛峰
풀어 주다: 2017-03-22 09:17:48
원래의
2421명이 탐색했습니다.

저에게 Python이라는 새로운 친구를 소개한 것은 처음 몇 명의 크롤러였습니다. 비록 서로 알고 지낸 지 며칠밖에 되지 않았지만 설명할 수 없는 암묵적인 이해감을 느꼈습니다. 다른 곳에서 아이디어를 찾을 수 없을 때마다 Python에서 항상 솔루션을 찾을 수 있습니다. 자동종료는 대용량 파일을 다운받거나 프로그램을 실행할 때 사용할 수 있습니다.. 그냥 윈도우 자동종료를 위한 작은 프로그램을 작성해봤습니다. 프로그램이 너무 간단해서 그냥 장난으로 치부해보겠습니다. 아래 텍스트:

#ui 제작:

평소와 같이 저자는 Qt를 사용하여 label, label_2, label_3, lable_4, lineEdit, lineEdit_2, pushButton 구성 요소를 포함한 필수 UI를 제작했습니다. 레이아웃은 다음과 같습니다

Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드

두 줄의 편집은 사용자가 원하는 종료 시간을 입력할 때까지 기다립니다. 다음 Label은 작업 후 반환 정보를 표시하는 데 사용됩니다. pushButton은 명령을 제출하는 데 사용됩니다. UI 제작이 완료되었습니다.

ui를 py 파일로 변환:

여기서 작성자는 PyQt5를 설치하고 환경 변수를 추가했습니다. 따라서 변환된 cmd 명령(ui가 있는 디렉터리로 cd):

pyuic5 shut.ui -o shut.py
로그인 후 복사

성공적으로 실행되면 ui가 있는 디렉터리에 shutdown.py 파일이 생성됩니다.

#표시 창:

직접 생성된 py 파일을 실행할 때 창을 볼 수 없습니다. 창을 표시하려면 필요한 내용을 추가해야 합니다.

코드 추가

import sys
로그인 후 복사

를 맨 위에 추가하고 마지막으로

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_())
로그인 후 복사

를 추가한 후 shutdown.py를 실행하여 창을 확인합니다.

#기능 구현:

Windows가 자동으로 종료되도록 하려면 프로그램에서 원하는 기능을 생각해 보세요. cmd 명령은 좋은 선택입니다. 그래서 저자는 Python에서 cmd 명령을 실행하는 방법을 찾았습니다.

os.popen('at 22:30 shutdown -s')
로그인 후 복사

cmd를 호출하고 명령을 실행합니다. 그 중 22번과 30번은 사용자 입력을 기다리는 데이터이다. 따라서 해당 h와 m은 두 줄의 편집에서 얻은 합법적인 숫자로 대체되어야 합니다. lineEdit의 내용을 가져오는 메서드를 사용합니다.

h = self.lineEdit.text()
m = self.lineEdit_2.text()
로그인 후 복사

그런 다음 실행 명령의 시간과 분을 h, m으로 바꿉니다.

그런 다음 pushButton 부분이 있습니다. pushButton 이벤트 클릭에 대한 리스너를 추가합니다.

self.pushButton = QtWidgets.QPushButton(shut,clicked=self.sd)
로그인 후 복사

그 중 self.sd는 이벤트가 발생한 후 수행해야 하는 작업입니다.

#완전 코드:

반품 정보 부분에 대해서는 일부 핵심 부분만 설명하였으므로 여기서는 자세히 설명하지 않겠습니다. Windows 자동 종료에 대한 전체 코드는 다음과 같습니다.

# -*- 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_())
로그인 후 복사

실행 후 아래와 같은 작업 창이 나타납니다.

Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드

# 실행 효과:

shut.py를 실행하고 12와 53을 입력하고 설정을 클릭합니다. 그런 다음 작업 계획을 확인합니다:

Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드

Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드

작업이 이미 계획되어 있다는 것입니다. 작업 계획을 새로 고치려면 제거를 클릭합니다.

Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드

작업이 성공적으로 제거되고 기능이 구현되었습니다.

물론 사용자가 Python을 설치하고 관련 구성 요소를 설치한 경우에만 실행할 수 있습니다. 어떤 창에서든 사용하려면 다음 작업이 필요합니다.

#Packaging:

저자는 패키징을 위해 Python의 Pyinstaller 구성 요소를 사용합니다. shutdown.py가 있는 디렉터리로 cd한 후 cmd 명령

pyinstaller -w shut.py
로그인 후 복사

을 실행합니다. 이때 shutdown.py가 있는 디렉터리에 dist 폴더가 생성됩니다. 생성된 exe 경로. dist>>shut (파이썬 소스코드 파일명)>>shut.exe 모든 것이 잘 되었다면, shutdown.exe를 더블클릭하면 이전 소스코드와 동일한 창과 동작이 표시됩니다. 이런 방식으로 전체 종료 디렉토리를 친구에게 보낼 수 있습니다. 그런 다음 shutdown.exe를 두 번 클릭하여 프로그램을 사용할 수 있습니다.

위 내용은 Python에서 Windows 예약 종료 기능을 구현하기 위한 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿