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 24 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
Python爬虫天气预报实例详解(小白入门)
Jan 24 Python
python实现超市扫码仪计费
May 30 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
Python assert语句的简单使用示例
Jul 28 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
Python selenium页面加载慢超时的解决方案
Mar 18 Python
详解python 支持向量机(SVM)算法
Sep 18 Python
利用Python发送邮件或发带附件的邮件
Nov 12 Python
详解Python Celery和RabbitMQ实战教程
Jan 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
学习python的几条建议分享
2013/02/10 Python
Python中的模块和包概念介绍
2015/04/13 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
python 字符串常用函数详解
2019/09/11 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
写给女朋友的保证书
2015/05/09 职场文书
如何写新闻稿
2015/07/18 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
Django中celery的使用项目实例
2022/07/07 Python