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实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
举例讲解Python中的list列表数据结构用法
Mar 12 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
pandas计数 value_counts()的使用
Jun 24 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
Mac安装python3的方法步骤
Aug 09 Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 Python
如何用Python 加密文件
Sep 10 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
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
jquery操作select option 的代码小结
2011/06/21 Javascript
js 窗口抖动示例
2013/09/04 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
python创建进程fork用法
2015/06/04 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
python开根号实例讲解
2020/08/30 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
快速创建python 虚拟环境
2020/11/28 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
初入社会应届生求职信
2013/11/18 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
村长贪污检举信
2014/04/04 职场文书
婚前协议书
2014/04/15 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis