zoukankan      html  css  js  c++  java
  • [转载]--用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

  • 相关阅读:
    BZOJ2142: 礼物
    GYM100633J. Ceizenpok’s formula 扩展lucas模板
    Codeforces451E Devu and Flowers
    BZOJ2982: combination Lucas模板
    UVAL3700
    BZOJ2821: 作诗(Poetize)
    BZOJ2724: [Violet 6]蒲公英
    Luogu P1858 多人背包
    Luogu P2831 愤怒的小鸟(状压+记忆化搜索)
    Luogu P4205 [NOI2005]智慧珠游戏
  • 原文地址:https://www.cnblogs.com/lizhishugen/p/3158780.html
Copyright © 2011-2022 走看看