Python3+PYQT5 实现并打包exe小工具(1)
前言:
由于项目原因,配置测试环境与正式环境切换频率很高,固写了一键切换环境的工具。用于记录。
实现逻辑:
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工具包传送门:
Python3+PYQT5 实现并打包exe小工具(1)的更多相关文章
- Python3+PYQT5 实现并打包exe小工具(2)
前言:前篇已经通过python代码实现了逻辑,传送门:https://www.cnblogs.com/jc-home/p/14447850.html 现在后篇记录的是打包成exe的方式给项目其他同事使 ...
- 【Python】Python实现Excel用例直接导入testlink-UI界面小工具
1.写在前面 testlink上传用例一种方法是excel转换为xml,然后再用xml上传,还有一种是调用api进行上传.最开始写了个转换工具,是将excel转换为xml,然后在testlink里上传 ...
- 【xmind converse excel】测试用例定制化小工具
背景 公司使用jira, jira写测试用例,jira可以通过execl导入进jira, 生成测试用例,但是模板很不统一,如果只是再execl中修改,又觉得及其的麻烦,所以写了一个xmind 转化为定 ...
- 【爬坑】python3+pyqt5+pyinstaller 打包成exe的各种问题
windows系统+python3+pyqt5+pyinstaller打包,经常会出现各种打包异常情况.如果代码没有特别异常,那么综合原因,大抵都是这四个元素之间的匹配问题,引起的.作者:一心狮链接: ...
- PyQt5环境搭建及cx_freeze打包exe
Python的图形库也有好几个,Qt文档和使用面还是要广一些. 打包成可执行文件的也有好几个,PyInstaller用的比较多,但是PyInstaller目前还不支持Python3.6(开发版支持3. ...
- python3 小工具
扫描IP的端口是否开放:Porttest.py # -*- coding: utf-8 -*- import sys import os import socket #扫描 def scanport( ...
- R shiny 小工具Windows本地打包部署
目录 服务器部署简介 windows打包部署 1. 部署基本框架 2.安装shiny脚本需要的依赖包 3.创建运行shiny的程序 [报错解决]无法定位程序输入点EXTPTE_PTR于动态链接库 将小 ...
- [破解]java打包Exe工具 - Jar2Exe Wizard
打包java文件为exe的方法和软件有很多,还有一些开源的软件和一些免费的软件. 我用过的所有打包exe软件中,Jar2Exe Wizard是最好用的,但是只有一个月的试用期,需要的可以从官网下载. ...
- install4j 工具为java程序打包exe
用 install4j 工具为java程序打包exe 制作人:mark 制作时间:2013-05-02 用Eclipse 将程序源码打包成jar文件. 打包jar方法我不做介绍了,相信大家都会,不会的 ...
随机推荐
- dedecms织梦后台栏目显示文档数不为0,但点进去之后什么都没有
曾经通过sql语句直接删除过dede_addonarticle或者dede_archives或者dede_arctiny中的记录,这三个表是有关联的,如果要通过sql语句删除内容,一定要同时将这三个表 ...
- Java基础进阶
Java基础进阶J Object类 hashcode() toString() clone() getClass() notify() wait() equals() Random类 生成 随机数 U ...
- C语言实现2048小游戏
目录 2048 一.设计思路 1.游戏规则 2.思路 二.代码实现 1.存储结构 2.初始化游戏数据 3.向左合并 4.其他方向合并 5.产生新的方块 6.源代码 7.实例演示 三.问题 2048 一 ...
- HBase和ElasticSearch索引类型及存储位置
本篇博文主要对HyperBase(HBase).Search(ElasticSearch)的索引类型及具体存储位置进行概要总结,让大家从整体上了解TDH平台中HyperBase和Search索引的管理 ...
- VScode 连接虚拟机
VScode 连接虚拟机 在VScode上面使用SSH连接虚拟机,编写代码以及运行都将会方便许多 打开VScode,安装Remote-SSH插件 配置SSH连接信息 点击左侧第四个图标,然后单击设置按 ...
- hdu5726 GCD(gcd +二分+rmq)
Problem Description Give you a sequence of N(N≤100,000) integers : a1,...,an(0<ai≤1000,000,000). ...
- Pollard_rho算法进行质因素分解
Pollard_rho算法进行质因素分解要依赖于Miller_Rabbin算法判断大素数,没有学过的可以看一下,也可以当成模板来用 讲一下Pollard_rho算法思想: 求n的质因子的基本过程是,先 ...
- python中schedule模块的简单使用 || importlib.import_module动态导入模块
1 import schedule 2 import time 3 4 def start(): #定义一个函数 5 print("****") 6 7 8 if __name__ ...
- 7.PowerShell DSC之模式
DSC两种模式 DSC有两种模式,Push模式和Pull模式 Push模式 基本流程 写配置--编译生成mof--推送到目标服务器,由目标服务器LCM执行mof并进行指定的配置 优点 架构简单.成本低 ...
- DSSM在召回和粗排的应用举例
0.写在前面的话 DSSM(Deep Structured Semantic Models)又称双塔模型,因其结构简单,在推荐系统中应用广泛:下面仅以召回.粗排两个阶段的应用举例,具体描述下DSSM在 ...