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中的线程进行网络编程的入门教程
Apr 15 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
Python弹出输入框并获取输入值的实例
Jun 18 Python
python序列化与数据持久化实例详解
Dec 20 Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 Python
keras小技巧——获取某一个网络层的输出方式
May 23 Python
通过cmd进入python的步骤
Jun 16 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
只用20行Python代码实现屏幕录制功能
Jun 02 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
默默简单的写了一个模板引擎
2007/01/02 PHP
Dedecms常用函数解析
2008/02/01 PHP
php socket方式提交的post详解
2008/07/19 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
python中文乱码的解决方法
2013/11/04 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
python 拼接文件路径的方法
2018/10/23 Python
python实现事件驱动
2018/11/21 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
通息工程毕业生自荐信
2013/10/16 职场文书
大学生自我鉴定
2013/12/08 职场文书
美术国培研修感言
2014/02/12 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
三八节活动主持词
2015/07/04 职场文书
婚礼迎宾词大全
2015/08/10 职场文书