Python 自动安装 Rising 杀毒软件

yipeiwu_com6年前Python基础
不能使用时,或重新安装系统时,方便我们重新安装最新的版本.
但是每次安装都要点击好几次 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读取各种文件数据方法解析

python读取.txt(.log)文件 、.xml 文件 、excel文件数据,并将数据类型转换为需要的类型,添加到list中详解 1.读取文本文件数据(.txt结尾的文件)或日志文件...

基于PyQt4和PySide实现输入对话框效果

基于PyQt4和PySide实现输入对话框效果

今天做了个基于PyQt4和PySide的输入对话框.已放到PyPi中,包名wlab,大家可以使用pip安装: pip install wlab 在程序输入中,有时会要求同时改变多个参...

python 含子图的gif生成时内存溢出的方法

今天想用python做个demo,含两个子图的动态gif,代码如下: import matplotlib.pyplot as plt import imageio,os import...

Python实现信用卡系统(支持购物、转账、存取钱)

Python实现信用卡系统(支持购物、转账、存取钱)

最近一直在做一个有关信用卡系统的项目,所有很少出来给大家打招呼了,今天也该告一段了,本项目是基于python编程语言做的,此信用卡支持购物,转账和存取钱,下面小编把需求及实现思路大概分享...

python线程池的实现实例

直接上代码:复制代码 代码如下:# -*- coding: utf-8 -*- import Queue import threadingimport urllibimport urll...