前言:

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

实现逻辑:

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. Dotnet的局部函数和委托的对比

    上一篇说了一下委托,这篇来说说局部函数和委托的对比.   把委托和局部函数放成前后篇,是因为这两个内容很像,用起来容易混. 需要了解委托相关内容,可以看这一篇 [传送门]   使用委托表达式(Lamb ...

  2. DedeCMS程序使用拼音首字母做栏目名称的方法

    Dedecms织梦程序默认使用拼音为保存目录的时候使用的是中文全拼,当遇到栏目名称比较长的时候目录名称看起来有点冗长,这时候大多数站长喜欢使用拼音首字母作为栏目的保存目录,那么就需要修改 dede/c ...

  3. HarmonyOS应用开发-Component体系介绍(一)

    目录: 1. Component的内部类/接口 2. Component方法简介 3.总结 在HarmonyOS的UI框架中,Component为用户界面提供基本组件,Component类位于ohos ...

  4. Hive配置Tez引擎踩坑

    框架版本 Hadoop 2.7.7 Hive 2.3.7 Tez 0.9.2 保证hadoop集群启动,hive元数据服务启动 上传tez到HDFS tar -zxvf apache-tez-0.9. ...

  5. “科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 G 血压游戏

    [血压游戏] (https://ac.nowcoder.com/acm/contest/5278/G) 神奇的tag数组...,巧妙弥补了高度损失. 方法一:dsu on tree 类似长链剖分,不过 ...

  6. 【noi 2.6_162】Post Office(DP)

    这题和"山区建小学"除了输入不同,其他都一样.(解析可见我的上一篇随笔) 但是,这次我对dis[][]加了一个优化,画一下图就可明白. 1 #include<cstdio&g ...

  7. 【noi 2.6_9265】取数游戏(DP)

    题意:从自然数1到N中不取相邻2数地取走任意个数,问方案数. 解法:f[i][1]表示在前i个数中选了第i个的方案数,f[i][0]表示没有选第i个.f[i][1]=f[i-1][0];  f[i][ ...

  8. HDU 3605 Escape 最大流

    题意: 如果这是2012年世界末日怎么办?我不知道该怎么做.但是现在科学家们已经发现,有些星球上的人可以生存,但有些人却不适合居住.现在科学家们需要你的帮助,就是确定所有人都能在这些行星上生活.输入多 ...

  9. 3.keepalived+脚本实现nginx高可用

    标题 : 3.keepalived+脚本实现nginx高可用 目录 : Nginx 序号 : 3 else exit 0 fi else exit 0 fi - 需要保证脚本有执行权限,可以使用chm ...

  10. RT-Thread学习笔记1-启动顺序与线程创建

    目录 1. 启动顺序 2. 堆范围 3. 线程创建 3.1 线程代码(入口函数) 3.2 线程控制块 3.3 线程栈 4. 系统滴答时钟 5. GPIO驱动架构操作IO 6. 线程优先级 & ...