风一样的男孩 发表于 2009-4-21 08:26:59

调用讯闪4.7的更新核心程序


'此脚本目的是:调用讯闪4.7的更新核心程序,每次开机后运行此脚本都会更新一次,而且只更新一次,不重启不会重复更新
'另外,你可以自定义版本号,这时,和使用菜单的效果是一样的,不管你重启多少次,版本号不变的时候是不会更新的

On Error Resume Next
dim FSO,WshNetwork,WSH,LoginProfiles,ComputerName,UserName,Ver
Set LoginProfiles = GetObject("winmgmts:").InstancesOf ("Win32_NetworkLoginProfile")
Set WSH=wscript.createobject("wscript.shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshNetwork = WScript.Createobject("WScript.Network")
ComputerName = WshNetwork.ComputerName
UserName = WshNetwork.UserName
for each Profile in LoginProfiles
    if Profile.Name=ComputerName&"\"&UserName then
      Ver=Left(Profile.LastLogon,14) '读取当前用户登陆系统多长时间
    end if
next

'讯闪4.7的各项参数设置
LoadPath = "F:\常用软件备份\迅闪v4.7\data\load.exe" '讯闪4.7更新核心程序路径
Arg01 = "[腾讯QQ]更新中,请稍待......"    '更新窗口标题
Arg02 = "\\gameupserver\game$\qq\"    '远程目录
Arg03 = "d:\windows\qq\"   '本地目录
Arg04 = ""       '强制更新指定文件夹
Arg05 = ""       '导入注册表文件路径
Arg06 = ""       '预先执行
Arg07 = ""       '预先执行参数
Arg08 = "d:\windows\qq\qq.exe"    '正常执行(更新完成后执行的文件)
Arg09 = ""       '正常执行参数
Arg10 = ""       '更新窗口的图片
Arg11 = ""       '排除的文件夹
Arg12 = ""       '排除的文件名
Arg13 = "3"       '对比文件时间误差(秒)
Arg14 = Ver    '版本号(这里使用开机时间做版本号,自定义时需用引号括起版本号,例:Arg14 = "123")
Arg15 = "0"       '保留多余文件 0--不保留   1--保留
Arg18 = ""       '程序皮肤
Arg20 = "1"       '对比文件大小 0--不对比   1--对比
Arg21 = "1"       '对比文件时间 0--不对比   1--对比

'生成讯闪4.7的更新参数
Dim Arg
Arg = " "&Chr(34) & "%01" & Arg01 & Chr(34)_
       &" "&Chr(34) & "%02" & Arg02 & Chr(34)_
       &" "&Chr(34) & "%03" & Arg03 & Chr(34)_
       &" "&Chr(34) & "%04" & Arg04 & Chr(34)_
       &" "&Chr(34) & "%05" & Arg05 & Chr(34)_
       &" "&Chr(34) & "%06" & Arg06 & Chr(34)_
       &" "&Chr(34) & "%07" & Arg07 & Chr(34)_
       &" "&Chr(34) & "%08" & Arg08 & Chr(34)_
       &" "&Chr(34) & "%09" & Arg09 & Chr(34)_
       &" "&Chr(34) & "%10" & Arg10 & Chr(34)_
       &" "&Chr(34) & "%11" & Arg11 & Chr(34)_
       &" "&Chr(34) & "%12" & Arg12 & Chr(34)_
       &" "&Chr(34) & "%13" & Arg13 & Chr(34)_
       &" "&Chr(34) & "%14" & Arg14 & Chr(34)_
       &" "&Chr(34) & "%15" & Arg15 & Chr(34)_
       &" "&Chr(34) & "%18" & Arg18 & Chr(34)_
       &" "&Chr(34) & "%20" & Arg20 & Chr(34)_
       &" "&Chr(34) & "%21" & Arg21 & Chr(34)

Dim VerFile,VerPrefix,VerNumber,LocalFolder
VerFile = FSO.GetAbsolutePathName(Arg03) & "\◆.log" '迅闪4.7记录版本的文件
VerPrefix = "当前版本=" '保存版本的字段
VerNumber = Arg14 '版本号
LocalFolder = FSO.GetAbsolutePathName(Arg03) '本地目录的明确完整的路径
RunProfile = Arg08 '游戏主程序

If Not FSO.FileExists(VerFile) Then '如果版本文件不存在
    SubShowFolder LocalFolder '检查本地目录是否存在
    WSH.Run LoadPath & Arg '更新
Else
    If SubReadVer Then '版本文件存在时,判断版本号
      WSH.Run RunProfile '版本号相同,运行游戏程序
    Else
      SubShowFolder LocalFolder '检查本地目录是否存在
      WSH.Run LoadPath & Arg '版本号不相同,更新
    End If
End If

'如果指定目录不存在则创建(同时检查父目录是否存在)
Function SubShowFolder(FolderPath)
    If Not FSO.FolderExists(FolderPath) Then
      SubShowFolder FSO.GetParentFolderName(FolderPath)
      Set FD = FSO.CreateFolder(FolderPath)
    End If
End Function

'从版本文件里读出版本,并与指定的版本对比,相同则返回True,否则返回False
Function SubReadVer()
    Set F = FSO.OpenTextFile(VerFile)
    While F.AtEndOfLine <> True
      V = F.ReadLine
      Vn = InStr(V,VerPrefix)
      If Vn > 0 Then
      If CStr(VerNumber) = CStr(Right(V,Len(V)-Len(VerPrefix))) Then
          SubReadVer = True
          Exit Function
      End If
      End If
      SubReadVer = False
    Wend
End Function

互联网 发表于 2009-4-22 23:28:52

有中文解释吗

estly 发表于 2009-5-5 00:39:34

够 细心的嘛

329967980 发表于 2009-5-30 22:08:27

楼主                      辛苦了

wftcw 发表于 2009-6-7 03:36:43

论坛有相关的补丁
页: [1]
查看完整版本: 调用讯闪4.7的更新核心程序