[轉載]--用Python 自動安裝軟件

腳本使用了  Python 2.3 + Com 對象,因此你的系統必須安裝Python2.3或更高版本
同時必須安裝  Mark Hammond's Win32all 模塊spa

(特別感謝Mark Hammond是他開發了超級模塊Win32all,同時向天才的Python 開發團隊表示感謝,是他們創造了神奇的 Python 語言).net

 腳本的使用很簡單,第一次運行時在命令行下使用 RisingInstall.py -c RisingInstall.cfg
 在同目錄下創建配置文件,打開它修改sn,id,path,execpath,分別填入 序列號,id號,安裝路徑,
 以及安裝程序所在的目錄及安裝程序名字命令行

 以後直接運行RisingInstall.Py 便可code

 

######################################################################
# 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/3161243orm

相關文章
相關標籤/搜索