需要的包

启动之后是这个样子的

远吗如下:

#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必给装机小软件附源码的更多相关文章

  1. C#版Windows服务安装卸载小工具-附源码

    前言 在我们的工作中,经常遇到Windows服务的安装和卸载,在之前公司也普写过一个WinForm程序选择安装路径,这次再来个小巧灵活的控制台程序,不用再选择,只需放到需要安装服务的目录中运行就可以实 ...

  2. 原创SQlServer数据库生成简单的说明文档小工具(附源码)

    这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...

  3. 原创SQlServer数据库生成简单的说明文档包含(存储过程、视图、数据库批量备份)小工具(附源码)

    这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...

  4. 微信小程序之蓝牙开发(详细读数据、写数据、附源码)

    本文将详细介绍微信小程序的蓝牙开发流程(附源码)准备:微信只支持低功耗蓝牙也就是蓝牙4.0,普通的蓝牙模块是用不了的,一定要注意. 蓝牙可以连TTL接到电脑上,再用XCOM调试 一开始定义的变量 va ...

  5. 微信小程序版博客——开发汇总总结(附源码)

    花了点时间陆陆续续,拼拼凑凑将我的小程序版博客搭建完了,这里做个简单的分享和总结. 整体效果 对于博客来说功能页面不是很多,且有些限制于后端服务(基于ghost博客提供的服务),相关样式可以参考截图或 ...

  6. 【转】.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 ...

  7. C#编程总结(七)数据加密——附源码

    C#编程总结(七)数据加密——附源码 概述 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容 ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码]

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码] 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用 ...

  9. Cesium专栏-填挖方分析(附源码下载)

    Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...

  10. Python的开源人脸识别库:离线识别率高达99.38%(附源码)

    Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073   11.11 智慧上云 ...

随机推荐

  1. 用js获取当前路由信息的方法

    1,设置或获取对象指定的文件名或路径.alert(window.location.pathname)2,设置或获取整个 URL 为字符串.alert(window.location.href);3,设 ...

  2. 连接打印机Lodop

    <div class="panel-body"> <div class="row show-grid"> <div class=& ...

  3. 修改浏览器搜索引擎:设置网址格式(用“%s”代替搜索字词)

    浏览器搜索引擎设置,如何填写网址格式(用"%s"代替搜索字词)? 以下收集部分: 综合检索 名称 关键字 网址(用"%s"代替搜索字词) 必应 cn.bing. ...

  4. vue-固定头部-内容可滚动

     <div class="show-box">             <div class="show-top">           ...

  5. requests模块获取cookie -----class 'requests.cookies.RequestsCookieJar'

    #coding=utf-8 import requests url="http://www.baidu.com" response=requests.get(url) cookie ...

  6. CountDownLatch/CyclicBarrierDemo/Samaphore

    CountDownLatch CountDownLatch:让一些线程阻塞直到另外一些完成后才被唤醒 CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞 ...

  7. 第12组 Beta冲刺 (3/5)

    1.1基本情况 ·队名:美少女战士 ·组长博客:https://www.cnblogs.com/yaningscnblogs/p/14016611.html ·作业博客:https://edu.cnb ...

  8. 反射(Reflect)

    反射摘要: 反射是java中非常强大的工具,利用反射可以书写框架,而框架就是半完成的代码.反射就是对类中的各个部分进行封装为其它对象,并且可以随时提取出Class或Object成员的属性,例如成员变量 ...

  9. YY播放器源码解析

    YY播放器使用Flutter编写的一个聚合播放器, 起因是看了 ZY-Player的源码, 发现实现挺有意思的, 也比较简单 地址: https://github.com/waifu-project/ ...

  10. Java新手问题:输出结果的地方出现红色字体 请问是什么原因?

    英文不是红色但中文是红色 请问各路大佬看一下是不是我代码出现了问题还是怎么滴.