使用Python脚本自动安装瑞星杀毒软件
本文介绍如何利用Python结合Win32all模块,编写自动化脚本以静默安装瑞星杀毒软件。通过配置文件管理序列号、ID及安装路径,模拟键盘操作完成安装流程,适用于系统重装后快速部署安全软件的场景。
自动化安装背景与需求
在系统崩溃无法启动或重新安装操作系统后,能够便捷地部署最新版本的杀毒软件至关重要。
然而,每次手动安装都需要多次点击“下一步”按钮,并手动输入序列号、ID等关键信息,这种重复且繁琐的操作令人厌烦。为此,我编写了一个小型脚本,旨在实现安装过程的自动化,从而
让我在安装过程中得以休息片刻。
该脚本基于Python 2.3版本及COM对象技术构建,因此要求运行环境必须安装Python 2.3或更高版本。
此外,系统还需安装Mark Hammond开发的Win32all模块。
(特别感谢Mark Hammond开发了强大的Win32all模块,同时也向Python开发团队致敬,是他们创造了Python这一神奇的语言。)
脚本的使用方式十分简单。首次运行时,需在命令行界面执行命令:RisingInstall.py -c RisingInstall.cfg。
该命令会在当前目录下生成一个配置文件。打开该文件,需修改sn、id、path、execpath这四个参数,分别填入对应的序列号、ID号以及软件安装路径。
同时,还需指定安装程序所在的目录路径及安装程序的文件名。
完成上述配置后,直接运行RisingInstall.py脚本即可开始自动安装过程。
Python脚本实现细节
具体代码实现如下:
######################################################################
# 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"
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













