前言:

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

实现逻辑:

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)的更多相关文章

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

    前言:前篇已经通过python代码实现了逻辑,传送门:https://www.cnblogs.com/jc-home/p/14447850.html 现在后篇记录的是打包成exe的方式给项目其他同事使 ...

  2. 【Python】Python实现Excel用例直接导入testlink-UI界面小工具

    1.写在前面 testlink上传用例一种方法是excel转换为xml,然后再用xml上传,还有一种是调用api进行上传.最开始写了个转换工具,是将excel转换为xml,然后在testlink里上传 ...

  3. 【xmind converse excel】测试用例定制化小工具

    背景 公司使用jira, jira写测试用例,jira可以通过execl导入进jira, 生成测试用例,但是模板很不统一,如果只是再execl中修改,又觉得及其的麻烦,所以写了一个xmind 转化为定 ...

  4. 【爬坑】python3+pyqt5+pyinstaller 打包成exe的各种问题

    windows系统+python3+pyqt5+pyinstaller打包,经常会出现各种打包异常情况.如果代码没有特别异常,那么综合原因,大抵都是这四个元素之间的匹配问题,引起的.作者:一心狮链接: ...

  5. PyQt5环境搭建及cx_freeze打包exe

    Python的图形库也有好几个,Qt文档和使用面还是要广一些. 打包成可执行文件的也有好几个,PyInstaller用的比较多,但是PyInstaller目前还不支持Python3.6(开发版支持3. ...

  6. python3 小工具

    扫描IP的端口是否开放:Porttest.py # -*- coding: utf-8 -*- import sys import os import socket #扫描 def scanport( ...

  7. R shiny 小工具Windows本地打包部署

    目录 服务器部署简介 windows打包部署 1. 部署基本框架 2.安装shiny脚本需要的依赖包 3.创建运行shiny的程序 [报错解决]无法定位程序输入点EXTPTE_PTR于动态链接库 将小 ...

  8. [破解]java打包Exe工具 - Jar2Exe Wizard

    打包java文件为exe的方法和软件有很多,还有一些开源的软件和一些免费的软件. 我用过的所有打包exe软件中,Jar2Exe Wizard是最好用的,但是只有一个月的试用期,需要的可以从官网下载. ...

  9. install4j 工具为java程序打包exe

    用 install4j 工具为java程序打包exe 制作人:mark 制作时间:2013-05-02 用Eclipse 将程序源码打包成jar文件. 打包jar方法我不做介绍了,相信大家都会,不会的 ...

随机推荐

  1. DEDECMS:解决无法上传图片(在后台插入图片时提示类型不允许)

    在include/uploadsafe.inc.php里把 $imtypes = array ( "image/pjpeg", "image/jpeg", &q ...

  2. Spring Security原理分析:系列集合

    Spring Security 工作原理概览:https://blog.csdn.net/u012702547/article/details/89629415 spring security执行原理 ...

  3. hdu 2089不要62 (数位dp)

    Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...

  4. python爬取网易翻译 和MD5加密

    一.程序需要知识 1.python中随机数的生成 # 生成 0 ~ 9 之间的随机数 # 导入 random(随机数) 模块 import random print(random.randint(0, ...

  5. Django实现文件上传

    一.HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  6. Linux CentOS7.x 升级内核的方法

    一.概述 在数据中心基础环境中,Linux系统使用很普遍,但是有时候会遇到应用程序需要运行在高版本的内核上或者有时候系统自身要求需要升级内核,我们要综合考虑升级内核的风险. 二.升级内核的方法 1.查 ...

  7. 牛客网多校第4场 A.Ternary String 【欧拉降幂】

    题目:戳这里 学习博客:戳这里 欧拉函数的性质: ① N是不为0的整数.φ(1)=1(唯一和1互质的数就是1本身) ② 除了N=2,φ(N)都是偶数. ③ 小于N且与N互质的所有数的和是φ(n)*n/ ...

  8. 神奇的数学学习网站 All In One

    神奇的数学学习网站 All In One magical math websites {{uploading-image-923797.png(uploading...)}} Math is Fun ...

  9. Markdown & Static Site Generator

    Markdown & Static Site Generator https://www.gitbook.com/ https://vuepress.vuejs.org/ https://ww ...

  10. js form.onformData事件

    在表单提交前修改数据,此事件在submit之后 f1.addEventListener("formdata", (e) => { e.formData.append(&quo ...