[转载]--用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