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根据距离和时长计算配速示例
Feb 16 Python
Python六大开源框架对比
Oct 19 Python
Python切换pip安装源的方法详解
Nov 18 Python
Python弹出输入框并获取输入值的实例
Jun 18 Python
python画蝴蝶曲线图的实例
Nov 21 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
jupyter notebook读取/导出文件/图片实例
Apr 16 Python
Python openpyxl 插入折线图实例
Apr 17 Python
python golang中grpc 使用示例代码详解
Jun 03 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
Python读写csv文件流程及异常解决
Oct 20 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP代码优化的53个细节
2014/03/03 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
Python类定义和类继承详解
2015/05/08 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Python实现ATM系统
2020/02/17 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
计算机专业毕业生自荐信
2013/12/31 职场文书
人民调解员培训方案
2014/06/05 职场文书
活动总结新闻稿
2014/08/30 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android