Python3+PYQT5 实现并打包exe小工具(1)

时间:2021-05-02 16:54:25

前言:

由于项目原因,配置测试环境与正式环境切换频率很高,固写了一键切换环境的工具。用于记录。

实现逻辑:

1、读取注册表中客户端的安装目录,把固定的环境配置文件添加到固定目录下实现配置测试环境;

2、通过读取注册表中客户端的安装目录,遍历固定目录下的文件,删除环境文件实现恢复正式环境;

3、通过PYQT5实现gui界面调用函数,*切换环境;

代码实现:

代码不涉及项目

import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication
from PyQt5 import QtWidgets
import os, shutil, time, win32api, win32con class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI() def get_pak_ini_path(self):
self.get_Installation_path()
if os.path.exists(r'./devtools_resources.pak'):
shutil.copy(r'./devtools_resources.pak', self.key_vule_pak)
if os.path.exists(r'./wallpaperurl.ini'):
shutil.copy(r'./wallpaperurl.ini', self.key_vule_ini)
else:
time.sleep(5)
else:
time.sleep(5) def get_Installation_path(self):
# 根据键的路径打印key值
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,
'SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\kdesk', 0,
win32con.KEY_READ) # 打印该路径下的某个键值
key_vule = win32api.RegQueryValueEx(key, "InstallLocation") #
# 元组转换成列表,删除多余元素。获取客户端安装路径
self.key_vule_new = list(key_vule).pop(0)
self.key_vule_pak = self.key_vule_new + 'cef'
self.key_vule_ini = self.key_vule_new + 'data' def del_pak_ini_path(self):
self.get_Installation_path()
dir_or_files = []
dir_or_files = os.listdir(self.key_vule_ini);
# print(dir_or_files) for f in dir_or_files:
filepath = os.path.join(self.key_vule_ini, 'wallpaperurl.ini')
if os.path.isfile(filepath):
os.remove(filepath)
break
else:
break def initUI(self):
btn1 = QPushButton('测试环境前端',self)
btn1.move(60,100) btn2 = QPushButton('正式环境前端',self)
btn2.move(200,100)
# 按钮点击行为
self.one = btn1.clicked.connect(self.buttonClicked_1)
self.two = btn2.clicked.connect(self.buttonClicked_2)
# 窗口大小
self.statusBar()
self.setGeometry(400,400,390,250)
self.setWindowFilePath('前端环境配置') self.show() def buttonClicked_1(self):
sender = self.sender()
# 引用函数
self.initUI()
# 按钮调用操作函数
self.one = self.get_pak_ini_path()
self.statusBar().showMessage(sender.text()+''+ '已点击') def buttonClicked_2(self):
sender = self.sender()
# 引用函数
self.initUI()
# 按钮调用操作函数
self.two = self.del_pak_ini_path()
self.statusBar().showMessage(sender.text()+''+ '已点击') if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
ui = MainWindow()
ui.show()
sys.exit(app.exec_())

打包exe工具包传送门: