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 查看文件的读写权限方法
Jan 23 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
Flask之flask-script模块使用
Jul 26 Python
对python3中, print横向输出的方法详解
Jan 28 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
Python内置类型性能分析过程实例
Jan 29 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 Python
用python计算文件的MD5值
Dec 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
DISCUZ 分页代码
2007/01/02 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
php实现删除空目录的方法
2015/03/16 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
JSQL  一个 web DB 的封装
2010/05/05 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
移动端使用localResizeIMG4压缩图片
2017/04/22 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
基于js 本地存储(详解)
2017/08/16 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
transform python环境快速配置方法
2018/09/27 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
公立医院改革实施方案
2014/03/14 职场文书
技能比武方案
2014/05/21 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
银行自荐信怎么写
2015/03/05 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
学生病假条怎么写
2015/08/17 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书