Python 自动安装 Rising 杀毒软件


Posted in Python onApril 24, 2009

不能使用时,或重新安装系统时,方便我们重新安装最新的版本.
但是每次安装都要点击好几次 Next 按钮,同时还要提供序列号,ID 等信息,我很讨厌这种重复工作,索性写一个小的脚本,让他自动安装,这样
我就可以,在安装时休息几分钟了
脚本使用了 Python 2.3 + Com 对象,所以你的系统必须安装Python2.3或更高版本
同时必须安装 Mark Hammond's Win32all 模块
(特别感谢Mark Hammond是他开发了超级模块Win32all,同时向天才的Python 开发团队表示感谢,是他们创造了神奇的 Python 语言)
脚本的使用很简单,第一次运行时在命令行下使用 RisingInstall.py -c RisingInstall.cfg
在同目录下建立配置文件,打开它修改sn,id,path,execpath,分别填入 序列号,id号,安装路径,
以及安装程序所在的目录及安装程序名字
之后直接运行RisingInstall.Py 即可

###################################################################### 
# Create By WormChocolate 
# RisingInstall.py Version Beta 1 
# 2005/02/22 19:17 PM 
# Test Wscript.Shell Object's Install Rising-Setup in Python 
###################################################################### 
import win32com.client,time,os,sys,ConfigParser 
wsh = win32com.client.Dispatch("Wscript.Shell") 
def InstallRising(ConfigFileName="RisingInstall.cfg"): 
if os.path.exists(ConfigFileName): 
cfg = ConfigParser.ConfigParser() 
cfg.read(ConfigFileName) 
try: 
sn = cfg.get("Install","sn") 
id = cfg.get("Install","id") 
installpath = cfg.get("Install","path") 
execpath = cfg.get("Install","execpath") 
splashsec = int(cfg.get("Program","splashsec")) 
languagesec = int(cfg.get("Program","languagesec")) 
itemsec = int(cfg.get("Program","itemsec")) 
wshe = wsh.Exec(execpath) 
pid = wshe.ProcessID 
except: 
print "ConfigParser faile" 
sys.exit(1) 
if pid != "": 
wsh.AppActivate(pid) 
time.sleep(splashsec) 
wsh.SendKeys("{ENTER}") 
time.sleep(languagesec) 
wsh.SendKeys("%n") 
#time.sleep(itemsec) 
wsh.SendKeys("%a") 
#time.sleep(itemsec) 
wsh.SendKeys("%n") 
#time.sleep(itemsec) 
wsh.SendKeys(sn) 
#time.sleep(itemsec) 
wsh.SendKeys(id) 
wsh.SendKeys("%n") 
time.sleep(itemsec) 
wsh.SendKeys("%s") 
time.sleep(itemsec) 
wsh.SendKeys("%n") 
time.sleep(itemsec) 
wsh.SendKeys("%n") 
time.sleep(itemsec) 
wsh.SendKeys(installpath) 
wsh.SendKeys("%n") 
time.sleep(itemsec) 
wsh.SendKeys("%n") 
wsh.SendKeys("%n") 
else: 
print "Config File " + ConfigFileName +" Not Found" 
print "Now Auto Create This Config File Dot't Worry" 
CreateCfg(ConfigFileName) 
InstallRising() 
def CreateCfg(cfgname): 
if cfgname != "": 
print "Createing Config File : "+ cfgname + "..." 
contents = ["[Install]\n","sn=\n","id=\n","path=c:\\\\Program Files\\\\rising\\\\Rav\n","execpath = c:\\\\Rising17.06.exe\n" \ 
"\n[Program]\n","splashsec=20\n","languagesec=2\n","itemsec=1\n"] 
cfg = open(cfgname,"w+t",256) 
cfg.writelines(contents) 
cfg.close() 
print cfgname + " Create Ok..." 
#----- Main ------------- 
if len(sys.argv) == 1 : 
InstallRising() 
elif len(sys.argv) == 2: 
InstallRising(sys.argv[1]) 
elif len(sys.argv) == 3: 
if sys.argv[1]=="-c" and sys.argv[2] != "": 
CreateCfg(sys.argv[2]) 
print "Config File: " + sys.argv[2] + " Created OK..." 
else: 
print "Parm Error : \nExample : "+sys.argv[0]+" -c ConfigFileName.cfg" 
else: 
print "Script Error"
Python 相关文章推荐
Python的Django框架中设置日期和字段可选的方法
Jul 17 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
python实现word 2007文档转换为pdf文件
Mar 15 Python
python实现定时提取实时日志程序
Jun 22 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
python各层级目录下import方法代码实例
Jan 20 Python
Tensorflow之梯度裁剪的实现示例
Mar 08 Python
Python实例教程之检索输出月份日历表
Dec 16 Python
手残删除python之后的补救方法
Jun 26 Python
Python实现对齐打印 format函数的用法
Apr 28 Python
Python 解析XML文件
Apr 15 #Python
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
Apr 09 #Python
python thread 并发且顺序运行示例
Apr 09 #Python
python 判断一个进程是否存在
Apr 09 #Python
python ElementTree 基本读操作示例
Apr 09 #Python
python 获取et和excel的版本号
Apr 09 #Python
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 #Python
You might like
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP调试的强悍利器之PHPDBG
2016/02/22 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
vue的三种图片引入方式代码实例
2019/11/19 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
AI人工智能 Python实现人机对话
2017/11/13 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
python 写一个水果忍者游戏
2021/01/13 Python
Python读写Excel表格的方法
2021/03/02 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
茶叶店创业计划书范文
2014/01/19 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
现场施工员岗位职责
2015/04/11 职场文书
餐馆开业致辞
2015/08/01 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis