[转载]--用Python 自动安装软件
脚本使用了 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"
来源:http://blog.csdn.net/awingle/article/details/3161243
[转载]--用Python 自动安装软件的更多相关文章
- python自动安装mysql5.7
python自动安装mysql5.7 python版本:python2.6 centos版本:centos6.9 mysql版本:mysql5.7.19 安装目录路径和数据目录路径都是固定,当然也可以 ...
- python自动安装mysql5.7【转】
#!/usr/bin/env python import os import sys import re base_dir = '/opt/software/mysql-5.7.17-linux-gl ...
- Python自动安装第三方类库
Python在使用过程中会用到大量的第三方库,逐一手工去下载.安装比较繁琐.可以配置第三方镜像源并使用pip进行自动安装.这里推荐选择豆瓣的镜像源:http://pypi.douban.com/sim ...
- Window Server 2019 配置篇(6)- 利用组策略实现域内自动安装软件
上次我们建立了WSUS实现了更新管理,那么现在我们需要的是让集群内的客户机(之后会建立在hyper-v集群上)和服务器都能装上三个软件 1. Microsoft Team 2. Notepad++ 3 ...
- 在红米note4上实现自动安装软件
因为要做自动化测试,需要对已发布的包进行回归手测,这个时候需要手动安装APK,但是红米会弹出继续安装的按钮,手点一次比较烦,想自动点"继续安装"按钮! 感谢先行者们的分享 本文参考 ...
- python自动安装python2.7
#coding = utf-8 import os import sys if(os.getuid() == 0): pass else: print ("you are not root ...
- vs2010 setup 打包 安装 BAT批处理实现自动安装软件功能
CLS@echo offECHO.ECHO 安装 Diskeeper 7.0.428ECHO 请稍等...start /wait %systemdrive%\install\Applications\ ...
- day3 自动部署安装软件到其他的机器设备上
PS:原理是在本机创建boot.sh指向每一台主机,使用脚本命令去执行,然后就会自动安装软件 PS:boot.sh里面放着1.免密登录 2.发送每台机器install.sh 这个install.sh中 ...
- Linux在本地使用yum安装软件
经常遇到有的linux服务器由于特殊原因,不能连接外网,但是经常需要安装一些软件,尤其是在编译一些包的时候经常由于没有安装一些依存包而报的各种各样的错误,当你找到依存的rpm包去安装的时候,又提示你有 ...
随机推荐
- Android开发-API指南-<permission-group>
<permission-group> 英文原文:http://developer.android.com/guide/topics/manifest/permission-group-el ...
- 关于NopCommerce3.6版用户登录详解
一.登录方式 Nop登录方式有两种(且只能选择一种方式登录):一种是用用户名登录,另一种是用户注册邮箱登录,这个在后台可配置: 第一种:用户名登录 后台配置路径在商城设置à设置管理à客户设置:使用用户 ...
- React生命周期和虚拟DOM
一.虚拟DOM 1.React并不直接操作DOM,React中的render方法,返回一个DOM描述,React能够将这个DOM描述与内存中的表现进行比较,然后以最快的方式更新浏览器 2.React实 ...
- HTTP 500.22 错误解决
打开网站对应的应用池-->高级设置-->托管管道模式改为classic
- Rational Functional Tester 对象文件(rftdef)合并
Rational Functional Tester (RFT) 是一款集成在Eclipse上的自动化测试工具.而自动化测试最麻烦的维护部分,一大部分也是指的是对象库文件的管理维护. 之前的项目里,经 ...
- python --那些你应该知道的知识点
1.python函数参数(含星号参数)http://blog.useasp.net/archive/2014/06/23/the-python-function-or-method-parameter ...
- PAT1023. Have Fun with Numbers
//水题,但是考点不水,可能用的strlen属于string库,但是只能用于字符,不能用数字,因为\0就是0.出现0无法判断,其次二倍时有可能有进位 //第一次在二倍进位上出了问题 #include& ...
- jenkins smtp设置调试
- asp.net 在线人数
很网站都有在线人数,这一功能无处不在.现在,我们就介绍在.NET中一个简单明了的方法来统计在线用户的多少,该方法的特点就是充分的利用了ASP.NET的特点,结合global.asax文件,用Appli ...
- c# 字符串(含有汉字)转化为16进制编码(转)
public static string Str2Hex(string s) { string result = string.Empty; byte[] arrByte = System.Text. ...