• 新浪微博:
  • 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:03-18

按键精灵安卓版
立即下载

软件版本:3.6.5
软件大小:46.2M
更新时间:03-02

按键精灵iOS版
立即下载

软件版本:1.7.6
软件大小:29.2M
更新时间:12-06

最新企业版UiBot
立即下载

软件版本:3.3
软件大小:282M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[分享脚本] 软件自动更新(下载,解压,自启动) [复制链接]

1#
本帖最后由 118184017 于 2015-5-13 08:52 编辑

[attach]176808[/attach]更新首先要有下载地址 。其次要有压缩包的文件名。然后直接调用函数就能自动下载,解压,然后关闭原小精灵,然后运行新的小精灵,看源码。
  1. 网页地址="http://bbs.anjian.com/forum.php?mod=attachment&aid=MTY2NzYzfGQ4M2Q0ODMyfDE0MjkxNzY3ODJ8MTg3NDk2OHw1NTE0NTE%3D"
  2. 压缩文件="把EXCEL的数据录入到任何系统.zip"
  3. call 软件更新(网页地址,压缩文件)
复制代码
回复后查看!未使用任何插件!
  1. Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
  2. Sub 软件更新(网页地址,压缩文件)
  3. Dim 新软件名称,解压路径,VBs代码,目标文件,存放路径,更新文件夹,当前运行软件名,当前运行软件存放路径,i
  4. 当前运行软件存放路径=获取路径(0)
  5. 当前运行软件名=获取文件名(获取路径(5))
  6. 当前运行软件路径=当前运行软件存放路径&"\"&当前运行软件名
  7. 解压路径="C:\"
  8. 新软件名称=split(压缩文件,".")(0)&".exe"
  9. 更新文件夹=解压路径&"软件更新"
  10. If (判断文件夹或文件是否存在(更新文件夹))then Call 删除文件或文件夹(更新文件夹)
  11. Call 创建文件夹(更新文件夹)
  12. call 下载所有(网页地址,更新文件夹&"\"&压缩文件)
  13. Delay 1000
  14. call 解压(更新文件夹&"\"&压缩文件,更新文件夹)
  15. For i = 1 To 60
  16. Delay 1000
  17. If (判断文件夹或文件是否存在(更新文件夹 & "\" & 新软件名称)) Then
  18. Exit For
  19. End If
  20. Next
  21. If (判断文件夹或文件是否存在(更新文件夹&"\"&新软件名称)) Then
  22. 目标文件=更新文件夹&"\"&新软件名称:存放路径=当前运行软件存放路径&"\"&新软件名称
  23. VBs代码="Dim fso"&vbcrlf
  24. VBs代码=VBs代码&"Set fso = CreateObject(""Scripting.FileSystemObject"")"&vbcrlf
  25. If (InStr(当前运行软件名, "按键精灵") = 0) Then
  26. VBs代码=VBs代码&"While prod("""&当前运行软件名&""")>0 "&vbcrlf//VBS循环等待软件停止运行
  27. VBs代码=VBs代码&"wscript.sleep 1000"&vbcrlf//VBS延时
  28. VBs代码=VBs代码&"Wend"&vbcrlf
  29. VBs代码=VBs代码&"fso.deletefile """&当前运行软件路径&""""&vbcrlf//VBS删除文件
  30. End If
  31. VBs代码=VBs代码&"fso.CopyFile """&目标文件&""","""&存放路径&""",False"&vbcrlf//拷贝文件
  32. VBs代码=VBs代码&"fso.deletefolder """&更新文件夹&""""&vbcrlf//VBS删除文件夹
  33. VBs代码=VBs代码&"Set fso = Nothing"&vbcrlf
  34. VBs代码=VBs代码&VBS代码串判断程序是否在运行函数
  35. VBs代码=VBs代码&启动VBS程序并返回PID
  36. VBs代码=VBs代码&"call RunAppRutrunPid("""&存放路径&""")"
  37. If (判断文件夹或文件是否存在(更新文件夹&"\Log.VBS"))then Call 删除文件或文件夹(更新文件夹&"\Log.VBS")
  38. Call 写文本内容(更新文件夹&"\Log.VBS",VBs代码)
  39. RunApp 更新文件夹&"\Log.VBS"
  40. Else
  41. MessageBox "自动解压失败,请手动解压"
  42. RunApp 更新文件夹&"\"&压缩文件
  43. End If
  44. If (InStr(当前运行软件名, "按键精灵") = 0) Then Call 结束进程(当前运行软件名)
  45. End Sub
  46. Function VBS代码串判断程序是否在运行函数()
  47. Dim 字符串
  48. 字符串="public function Prod(byval Val)"&vbcrlf
  49. 字符串=字符串&"dim prow"&vbcrlf
  50. 字符串=字符串&"set prow=getobject(""winmgmts:\\""&strcomputer).instancesOf(""win32_process"")"&vbcrlf
  51. 字符串=字符串&"For Each i In prow"&vbcrlf
  52. 字符串=字符串&"if lcase(i.name)=lcase(val) then"&vbcrlf
  53. 字符串=字符串&"prod=prod+1"&vbcrlf
  54. 字符串=字符串&"end if"&vbcrlf
  55. 字符串=字符串&"next"&vbcrlf
  56. 字符串=字符串&"Set prow = Nothing"&vbcrlf
  57. 字符串=字符串&"end function"&vbcrlf
  58. VBS代码串判断程序是否在运行函数=字符串
  59. End Function
  60. Function 启动VBS程序并返回PID()
  61. Dim 字符串
  62. 字符串="Function RunAppRutrunPid(ExePath)"&vbcrlf'启动VBS程序并返回PID
  63. 字符串=字符串&"Dim Win"&vbcrlf
  64. 字符串=字符串&"Set Win = GetObject(""winmgmts:\\.\root\cimv2:Win32_Process"")"&vbcrlf
  65. 字符串=字符串&"Win.create ExePath, Null, Null, Pid"&vbcrlf
  66. 字符串=字符串&"RunAppRutrunPid = Pid"&vbcrlf
  67. 字符串=字符串&"Set Win = Nothing"&vbcrlf
  68. 字符串=字符串&"End Function"&vbcrlf
  69. 启动VBS程序并返回PID=字符串
  70. End Function
  71. Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
  72. sub 下载所有(网页地址,保存到本地压缩文件和地址)
  73. Call URLDownloadToFile(0, 网页地址,保存到本地压缩文件和地址, 0, 0)
  74. End Sub
  75. Function 判断文件夹或文件是否存在(完整路径)
  76. Dim fso,strlen
  77. strlen=len(完整路径)
  78. Set fso = CreateObject("Scripting.FileSystemObject")
  79. If (mid(完整路径, strlen - 3, 1) = ".") Then
  80. 判断文件夹或文件是否存在= fso.fileexists(完整路径)
  81. Else
  82. 判断文件夹或文件是否存在= fso.FolderExists(完整路径)
  83. End If
  84. Set fso = Nothing
  85. End Function
  86. Sub 删除文件或文件夹(完整路径)
  87. Dim fso,strlen
  88. strlen=len(完整路径)
  89. Set fso = CreateObject("Scripting.FileSystemObject")
  90. If (mid(完整路径, strlen - 3, 1) = ".") Then
  91. fso.deletefile 完整路径,1
  92. Else
  93. fso.deletefolder 完整路径,1
  94. End If
  95. Set fso = Nothing
  96. End Sub
  97. Sub 创建文件夹(文件夹名)
  98. Dim fso
  99. Set fso = CreateObject("Scripting.FileSystemObject")
  100. fso.CreateFolder 文件夹名
  101. Set fso = Nothing
  102. End Sub
  103. Sub 重命名文件(文件名, 新文件名)
  104. Dim fso
  105. Set fso = CreateObject("Scripting.FileSystemObject")
  106. fso.MoveFile 文件名, 新文件名
  107. Set fso = Nothing
  108. End Sub
  109. Sub 写文本内容(文件名, 写入文本)
  110. Dim fso,myfile,myfile1
  111. Set fso = CreateObject("Scripting.FileSystemObject")
  112. If (fso.FileExists(文件名)=0) Then
  113. Set myfile1 = fso.CreateTextFile(文件名)
  114. Set myfile1 = Nothing
  115. End If
  116. Set myfile = fso.openTextFile(文件名, 8, True)
  117. myfile.WriteLine vbcrlf & 写入文本
  118. myfile.close
  119. Set myfile = Nothing
  120. Set fso = Nothing
  121. End Sub
  122. Function 获取当前路径()
  123. Dim wscript
  124. Set wscript = CreateObject("wscript.shell")
  125. 获取当前路径 = wscript.CurrentDirectory
  126. Set ws = Nothing
  127. End Function
  128. Sub 结束进程(映像名称)
  129. Dim strComputer, objWMIService, colProcessList, objProcess
  130. strComputer = "."
  131. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  132. Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & 映像名称 & "'")
  133. For Each objProcess in colProcessList
  134. objProcess.Terminate
  135. Next
  136. Set colProcessList = Nothing
  137. Set objWMIService = Nothing
  138. End Sub
  139. Sub 解压(压缩文件地址,保存地址)//只能解压C盘文件
  140. Dim Shell,Cmd,文件夹len
  141. 文件夹len=获取文件夹大小(保存地址)
  142. set Shell= CreateObject("wscript.shell")
  143. cmd = "WINRAR x -t -o+ -p- "
  144. Cmd=cmd&压缩文件地址&" "&保存地址
  145. Shell.Run Cmd
  146. Delay 2000
  147. If (文件夹len=获取文件夹大小(保存地址))
  148. cmd = "HaoZipC e "
  149. Cmd=cmd&压缩文件地址&" -o"&保存地址
  150. Shell.Run Cmd
  151. End If
  152. Set Shell = Nothing
  153. End Sub
  154. Function 获取文件夹大小(目标文件夹)
  155. Dim fso
  156. Set fso = CreateObject("Scripting.FileSystemObject")
  157. 获取文件夹大小 = fso.getfolder(目标文件夹).size
  158. Set fso = Nothing
  159. End Function
  160. Function 获取路径(ms)'获取路径
  161. 'ms=0 当前路径:ms=1 自启动路径:ms=2 Windows路径:ms=3 system32路径:ms=4 桌面路径:ms=5 当前软件全路径
  162. Dim WshShell
  163. Set WshShell = CreateObject("Wscript.Shell")
  164. Select Case ms
  165. Case 0:获取路径= WshShell.CurrentDirectory '当前路径
  166. Case 1:获取路径= WshShell.SpecialFolders("startup")'自启动路径
  167. Case 2:获取路径=WshShell.expandenvironmentstrings("%windir%")'Windows路径
  168. Case 3:获取路径=WshShell.expandenvironmentstrings("%windir%")&"\system32"'system32路径
  169. Case 4:获取路径= WshShell.SpecialFolders("Desktop")'桌面路径
  170. Case 5:a0a= space(260):GetModuleFileName NULL,a0a, 260:获取路径=a0a'当前软件全路径
  171. End Select
  172. Set WshShell = Nothing
  173. End Function
  174. Function 获取文件名(Path)'获取文件名
  175. Dim fso
  176. Set fso = CreateObject("Scripting.FileSystemObject")
  177. 获取文件名= fso.GetFile(Path).name
  178. Set fso = Nothing
  179. End Function
复制代码

附件:您需要登录才可以下载或查看附件。没有帐号? 注册
最后编辑118184017 最后编辑于 2016-01-16 13:56:06
2#

谢谢分享

3#

软件自动更新

官方实名认证作者 QQ:185220901
承接 游戏,办公...各类脚本制作
4#

fxgxkfkxgkckgckgc

5#

3444444444444444443

6#

11111111111111

7#

大法师法第三方反复反复反复反复

8#


9#


10#

目测好像坏了

接脚本、插件、辅助等定制千元以下勿扰。半价收费,
永远不做免费脚本,因为做出的脚本只会很垃圾,无法进步就只能做永远的阿斗。
11#

RE:软件自动更新(下载,解压,自启动)修改

12#

嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯

13#


14#

学习中。谢谢分享

15#


16#

该用户帖子内容已被屏蔽

17#

该用户帖子内容已被屏蔽

18#

该用户帖子内容已被屏蔽

19#

看看谢谢楼主

20#

看看谢谢楼主

发新话题 回复该主题