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减少循环层次和缩进的技巧分析
Mar 15 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
python docx 中文字体设置的操作方法
May 08 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
Python 获取div标签中的文字实例
Dec 20 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
Jun 17 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
Python模块常用四种安装方式
Oct 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
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
降低PHP Redis内存占用
2017/03/23 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
Laravel find in set排序实例
2019/10/09 PHP
javascript常用函数归纳整理
2014/10/31 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
python操作gmail实例
2015/01/14 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
python多维数组分位数的求取方式
2020/03/03 Python
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
买房子个人收入证明
2014/01/16 职场文书
2014年高考决心书
2014/03/11 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
教师求职自荐书
2014/06/14 职场文书
学校工作推荐信范文
2014/07/11 职场文书
公司员工离职证明书
2014/10/04 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
python实现三次密码验证的示例
2021/04/29 Python
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
JavaScript实现简单拖拽效果
2021/09/15 Javascript
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang