it必给装机小软件附源码
需要的包
启动之后是这个样子的
远吗如下:
#authon feng
import zipfile as zf
import os
import win32api
import win32con
import pythoncom
from win32com.shell import shell
from win32com.shell import shellcon
import PySimpleGUI as sg
sg.theme()
path_r=r'c:\ruanjian'
path_rr=r'c:\ruanjian\ruanjian'
lnkname = os.getcwd()+r"xitong"+r".lnk"
vision1='版本号:1.0'
def ui_w():
sg.theme()
frame_layout1 =[
[sg.Checkbox("搜狗输入法",default=True, key='sg'),sg.Checkbox("wps",default=True, key='wps')],
[sg.Checkbox("企业微信",default=True, key='qywx'),sg.Checkbox("微信",default=True, key='wx')],
[sg.Checkbox("RAR解压缩", default=True, key='rar'), sg.Checkbox("火绒", default=True, key='hr')],
[sg.T(' ' *4, key='zw1')],
]
frame_layout2=[
[sg.Checkbox("启动谷歌浏览器", default=True, key='sgg'), sg.Checkbox("ie安全模式关闭", default=True, key='ie')],
[sg.Checkbox('创建桌面快捷方式',default=True,key='ck'),sg.Checkbox('输血插件',default=True,key='sxcj')],
[sg.T(''*15, key='zt')],
[sg.T(' '*32, key='zw2'),sg.Button('启动',key='qd')],
]
layout=[
[sg.Frame('装机软件', frame_layout1, font='Any 12', title_color='blue'),
sg.Frame('浏览器操作', frame_layout2, font='Any 12', title_color='blue')],
[sg.T(' '*4, key='qd'),sg.Button('安装',key='-install-'), sg.B('退出',key='EXIT'),sg.T(' '*25),sg.T(vision1)],
]
cb_list=['sg','wps','qywx','wx','hr','rar']
cb_list2=['ck','ie','sxcj','sgg']
w= sg.Window('IT工具', layout, font=("Helvetica", 12),icon='ff1.ico')
while True:
event, value = w.read()
if event in ('EXIT', None):
break
elif event == '-install-':
for name in cb_list:
if w[name].Get():
os.system(str.strip(os.path.join(path_rr,name+'.exe')))
elif event == 'qd':
for name in cb_list2:
if w[name].Get():
if name=='ie':
text1=ie_moshi()
if text1:
w['zw2']('ie安全模式已经关闭')
else:
w['zw2']('ie模式已经关闭')
print(text1)
elif name=='ck':
if os.path.exists(lnkname):
w['zt']('图标已经存在')
else:
text1 = set_shortcut()
if text1:
w['zt']('快捷方式创建成功')
elif name=='sgg':
start_chome()
elif name=='sxcj':
sx_chajian()
else:
break
w.close()
def zip_jieya(): #解压程序
if zf.is_zipfile('ruanjian.zip'):
with zf.ZipFile('ruanjian.zip', 'a') as f:
f.extractall(r'c:\ruanjian')
print("1")
f.close()
else:
sg.popup("ruanjian.zip不存在,请先把压缩包放到桌面",title='错误提示')
# 注册表操作
def ie_moshi():
# 打开这个目录\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3
# 返回句柄
key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,
r"Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3",
0,
win32con.KEY_ALL_ACCESS)
print(key)
key2 = win32api.RegQueryValueEx(key, '2500')#现获取项目值
print(key2)
if key2[0]!=3: #判断是否为3,3是关闭保护模式,0是开始,默认一般是0
win32api.RegSetValueEx(key,"2500",0,win32con.REG_DWORD,3)#修改项目的值
print("修改完成")
zc_jg='ie安全模式已经关闭'
else:
print("当前前默认值为%s不用修改" %key2[0])
zc_jg='安全模式已经关闭'
win32api.RegCloseKey(key)#关闭注册表
return zc_jg
# 创建桌面快捷方式
def set_shortcut(): # 如无需特别设置图标,则可去掉iconname参数
try:
filename = r"C:\ruanjian\Chrome_X86_79\App\chrome.exe" # 要创建快捷方式的文件的完整路径
iconname = ""
lnkname = os.getcwd()+r"xitong"+r".lnk" # 将要在此路径创建快捷方式
shortcut = pythoncom.CoCreateInstance(
shell.CLSID_ShellLink, None,
pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IShellLink)
shortcut.SetPath(filename)
shortcut.SetWorkingDirectory(filename) # 设置快捷方式的起始位置, 不然会出现找不到辅助文件的情况
shortcut.SetIconLocation(iconname, 0) # 可有可无,没有就默认使用文件本身的图标
if os.path.splitext(lnkname)[-1] != '.lnk':
lnkname += ".lnk"
shortcut.QueryInterface(pythoncom.IID_IPersistFile).Save(lnkname, 0)
return True
except Exception as e:
print(e.args)
return False
def start_chome():
xt_path = r"C:\ruanjian\Chrome_X86_79\App\chrome.exe"
os.system(xt_path)
def sx_chajian():
sx_path=r"C:\ruanjian\sxcj.exe"
os.system(os.path.join(path_r,r"sxcj.exe"))
def main():
if not os.path.isdir(path_r):
zip_jieya()
ui_w()
if __name__=='__main__':
main()
it必给装机小软件附源码的更多相关文章
- C#版Windows服务安装卸载小工具-附源码
前言 在我们的工作中,经常遇到Windows服务的安装和卸载,在之前公司也普写过一个WinForm程序选择安装路径,这次再来个小巧灵活的控制台程序,不用再选择,只需放到需要安装服务的目录中运行就可以实 ...
- 原创SQlServer数据库生成简单的说明文档小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- 原创SQlServer数据库生成简单的说明文档包含(存储过程、视图、数据库批量备份)小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- 微信小程序之蓝牙开发(详细读数据、写数据、附源码)
本文将详细介绍微信小程序的蓝牙开发流程(附源码)准备:微信只支持低功耗蓝牙也就是蓝牙4.0,普通的蓝牙模块是用不了的,一定要注意. 蓝牙可以连TTL接到电脑上,再用XCOM调试 一开始定义的变量 va ...
- 微信小程序版博客——开发汇总总结(附源码)
花了点时间陆陆续续,拼拼凑凑将我的小程序版博客搭建完了,这里做个简单的分享和总结. 整体效果 对于博客来说功能页面不是很多,且有些限制于后端服务(基于ghost博客提供的服务),相关样式可以参考截图或 ...
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
[转].NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
- C#编程总结(七)数据加密——附源码
C#编程总结(七)数据加密——附源码 概述 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码]
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码] 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用 ...
- Cesium专栏-填挖方分析(附源码下载)
Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...
- Python的开源人脸识别库:离线识别率高达99.38%(附源码)
Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073 11.11 智慧上云 ...
随机推荐
- 关于uniapp
1.unipp中,页面生命周期onShow获取上一个传过来的options值. 答:onShow() { // 获取当前小程序的页面栈 let pages = getCurrentPages(); / ...
- 2020ccpc威海C.Rencontre题解(树形dp)
题目大意:给定一棵带边权树,给三份点的集合U1,U2,U3,求0.5*(E(dis(u1,u2))+E(dis(u1,u3))+E(dis(u2,u3))). 即,我们需要维护两份点的所有距离和.显然 ...
- 补充-jdk5新增多线程实现方式
创建多线程的原始两种方式 1.继承Thread类 2.实现Runable接口 jdk5新增的两种方式 1.实现Callable接口 jdk5:新增创建线程方式:实现Callable * ...
- airtest的手势滑动方法封装
这个网上应该很多类似的方法封装,各种实现方式也很多,但是感觉最简单实用的还是swipe了:代码很简单,直接上方法了. 很多方法都不会告诉你会导入什么包,其实很多小白入门可能就是这么简单的一步就被卡 ...
- django_模板层的变量和标签
一.模板层的变量 1.能传递到模板层的数据类型:str(字符串).list(数组).dict(字典).obj(类实例化的对象).fun(函数)等. 2.在模板中使用变量的方法: (1)字符串:{{ 变 ...
- Rfost的自我介绍+软工五问
自我介绍+软工五问 问题 解答 这个作业属于哪个课程 网工1934-软件工程 这个作业要求在哪里 作业要求 这个作业的目标 让学生对软件工程有个初步的了解,同时掌握基础的markdown语法和博客园的 ...
- Docker 安装 MySQL5.7
1.拉取数据库镜像 docker pull mysql:5.7 docker images命令查看镜像是否下载成功 docker images 2.配置mysql 创建mysql目录,用于存放mysq ...
- Integer类自动拆箱,装箱解析
1.自动拆箱 例1: int i1 = 10; Integer i2 = new Integer(10); System.out.println(i1 == i2); 这个结果是true i1为基本数 ...
- dockerflie
FROM newbe36524/aspnet:5.0-buster-slim AS base ENV TZ=Asia/Shanghai WORKDIR /app EXPOSE 3400 3400 RU ...
- P2345 [USACO04OPEN] MooFest G
简单的一个分块处理:优雅的暴力枚举 #include<bits/stdc++.h>using namespace std; typedef long long ll;const int N ...