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 相关文章推荐
zbar解码二维码和条形码示例
Feb 07 Python
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
python进程和线程用法知识点总结
May 28 Python
Python计算不规则图形面积算法实现解析
Nov 22 Python
浅析Python3 pip换源问题
Jan 06 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
Jun 23 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中mail函数发送邮件失败的解决方法
2014/12/24 PHP
php常见的魔术方法详解
2014/12/25 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
python中zip()方法应用实例分析
2016/04/16 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
财务助理岗位职责
2013/11/10 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
golang 实现并发求和
2021/05/08 Golang
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python