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 中__name__ = '__main__' 的作用
Jul 05 Python
Python中__call__用法实例
Aug 29 Python
python time模块用法实例详解
Sep 11 Python
Mac 上切换Python多版本
Jun 17 Python
Python数据结构之栈、队列的实现代码分享
Dec 04 Python
Python实现pdf文档转txt的方法示例
Jan 19 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
python移位运算的实现
Jul 15 Python
python删除指定列或多列单个或多个内容实例
Jun 28 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 Python
Pytorch中expand()的使用(扩展某个维度)
Jul 15 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
用函数读出数据表内容放入二维数组
2006/10/09 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
php测试kafka项目示例
2020/02/06 PHP
Node.js中的模块机制学习笔记
2014/11/04 Javascript
javascript实现微信分享
2014/12/23 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
python 七种邮件内容发送方法实例
2014/04/22 Python
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python标准库之循环器(itertools)介绍
2014/11/25 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
pyenv命令管理多个Python版本
2017/03/26 Python
python学生管理系统开发
2019/01/30 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
大学毕业生的自我鉴定
2013/11/30 职场文书
个人简历自我评价
2014/01/06 职场文书
学校介绍信范文
2014/01/14 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
爱之链教学反思
2014/04/30 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
2015入党自传书范文
2015/06/26 职场文书
小学语文教学随笔
2015/08/14 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书