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中使用mongoengine操作MongoDB教程
Apr 24 Python
Python获取当前路径实现代码
May 08 Python
python监控linux内存并写入mongodb(推荐)
Sep 11 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
Python selenium实现微博自动登录的示例代码
May 16 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
春节到了 教你使用python来抢票回家
Jan 06 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
解决IDEA 的 plugins 搜不到任何的插件问题
May 04 Python
python中使用.py配置文件的方法详解
Nov 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
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
php绘制圆形的方法
2015/01/24 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
学习vue.js计算属性
2016/12/03 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
js实现开关灯效果
2020/03/30 Javascript
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
生产内勤岗位职责
2013/12/07 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
九年级数学教学反思
2014/02/02 职场文书
小学生寒假家长评语
2014/04/16 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
2014年科室工作总结
2014/11/20 职场文书
欢迎词范文
2015/01/27 职场文书
安全员岗位职责范本
2015/04/11 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
使用javascript解析二维码的三种方式
2021/11/11 Javascript