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正则表达式介绍
Aug 06 Python
python算法学习之桶排序算法实例(分块排序)
Dec 18 Python
python实现linux服务器批量修改密码并生成execl
Apr 22 Python
使用python绘制常用的图表
Aug 27 Python
Python中实现switch功能实例解析
Jan 11 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
python清除字符串前后空格函数的方法
Oct 21 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
Python文件时间操作步骤代码详解
Apr 13 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 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 版获取重定向后的地址(代码)
2013/06/26 PHP
php strnatcmp()函数的用法总结
2013/11/27 PHP
php上传文件常见问题总结
2015/02/03 PHP
ThinkPHP控制器详解
2015/07/27 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
python自定义类并使用的方法
2015/05/07 Python
Python判断Abundant Number的方法
2015/06/15 Python
浅谈Python中的闭包
2015/07/08 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
python添加模块搜索路径方法
2017/09/11 Python
python实现扫描ip地址的小程序
2019/04/16 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
公司前台接待岗位职责
2013/12/03 职场文书
师范生自我鉴定
2014/03/20 职场文书
教师个人读书活动总结
2014/07/08 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
课外活动实习计划
2015/01/19 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技