无忧启动论坛

标题: 由于火绒官方的静默安装在5.0.11.1之后就砍掉了,想自己整,苦于看不懂NSIS脚本。 [打印本页]

作者: 求道者    时间: 2022-9-3 20:05
标题: 由于火绒官方的静默安装在5.0.11.1之后就砍掉了,想自己整,苦于看不懂NSIS脚本。
本帖最后由 求道者 于 2022-9-3 20:06 编辑

有没有成品或者教程?
旧版本NSIS脚本和新版差得有点远。
我对NSIS一窍不通。
属实不知道怎么动手了。

只有批处理也行。
这样以后部署只要解包安装包就行了。


作者: weal2010    时间: 2022-9-4 07:59
看看
作者: wondaol    时间: 2022-9-4 08:46
静默安装有什么缺点?
作者: 9zhmke    时间: 2022-9-4 09:15
本帖最后由 9zhmke 于 2022-9-4 09:17 编辑

给你个VBS的吧,可以参照改成你自己的,或者改成批处理:

  1. ProcessName="hr" & ".exe"'这里放火绒安装程序的名字
  2. Set WshShell=WScript.CreateObject("WScript.Shell")
  3. my_dir=left(wscript.scriptfullname,instrrev(wscript.scriptfullname,"")-1) & ""
  4. file=my_dir & ProcessName
  5. if not CreateObject("Scripting.FileSystemObject").FileExists(file) then msgbox "没找到:" & file:Wscript.Quit
  6. WshShell.Run file,1
  7. while CPU_busy >4 or Hard_busy >4096: wscript.sleep 200:Wend '忙则等
  8. wscript.Sleep 3000
  9. WshShell.SendKeys "{Enter}"'点击“下一步”
  10. Wscript.Quit






  11. '==================================程序完毕,下方是子程序==================================
  12. Function CPU_busy() 'CPU使用率
  13.     dim objProc
  14.     Set objProc = GetObject("winmgmts:\\.\root\cimv2:win32_processor='cpu0'")
  15.     CPU_busy=objProc.LoadPercentage 'CPU使用率
  16.     Set objProc = nothing
  17. End Function
  18. Function Hard_busy() '硬盘忙闲
  19.     Dim vName,IDE,cPPP,sNow,A,B,R1,W1,R2,W2,read,write
  20.     Set objWMIService=GetObject("winmgmts:\\.\root\cimv2")
  21.     Set IDE = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE InterfaceType='IDE'")
  22.     Set cPPP = objWMIService.ExecQuery("SELECT * FROM Win32_PerfRawData_PerfDisk_PhysicalDisk WHERE Name<>'_Total'")
  23.     DskPs=WshShell.ExpandEnvironmentStrings("%SystemDrive%") '取系统驱动器
  24.         Set A = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfDisk_LogicalDisk Where Name = '"& DskPs &"'")
  25.         For Each B In A
  26.             R1 = B.DiskReadBytesPersec: W1 = B.DiskWriteBytesPersec
  27.             If RA0 = "" Then RA0 = B.DiskReadBytesPersec Else RA1 = R1 End If
  28.             If WA0 = "" Then WA0 = B.DiskWriteBytesPersec Else WA1 = W1 End If
  29.         Next
  30.     Set A = Nothing
  31.     WScript.Sleep(500)
  32.     Set A = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfDisk_LogicalDisk Where Name = '"& DskPs &"'")
  33.     For Each B In A
  34.         R2 = B.DiskReadBytesPersec
  35.         W2 = B.DiskWriteBytesPersec
  36.     Next
  37.     Set A = Nothing
  38.     read=R2-R1:write=W2-W1   'msgbox  "半秒实时读取:" & read & "/s 实时写人:" & write
  39.     Hard_busy = read + write
  40.     Set IDE=nothing
  41.     Set cPPP=nothing
  42. End Function
复制代码


程序虽然不是静默,但适用于机房批量安装,实际上也就是打开同文件夹下的hr.exe,然后等待安装完成后,点击一个回车键。

作者: 求道者    时间: 2022-9-4 10:34
9zhmke 发表于 2022-9-4 09:15
给你个VBS的吧,可以参照改成你自己的,或者改成批处理:



我脚本是用ahk写的,能捕捉按钮,只是我不想弄这种东西,而且要求也不急。
作者: weal2010    时间: 2022-9-5 11:24
看看
作者: sgyfx    时间: 2022-9-5 11:38
这个有难度,帮不到你。
作者: cxincn    时间: 2022-9-6 08:48
看看
作者: weal2010    时间: 2022-9-6 15:57
谢谢
作者: yechengzhou    时间: 2022-9-7 15:55
SUT整合包,版本有点旧
https://cloud.189.cn/web/share?code=n6nEFn6NVbQf(访问码:fe58)
作者: 求道者    时间: 2022-10-8 09:36
yechengzhou 发表于 2022-9-7 15:55
SUT整合包,版本有点旧
https://cloud.189.cn/web/share?code=n6nEFn6NVbQf(访问码:fe58)

我看能不能参考一下。
作者: dxhjh    时间: 2022-10-8 14:04
谢谢分享
作者: sufeiy    时间: 2022-10-8 14:37

谢谢分享,太好了.
作者: 求道者    时间: 2022-10-8 17:43
yechengzhou 发表于 2022-9-7 15:55
SUT整合包,版本有点旧
https://cloud.189.cn/web/share?code=n6nEFn6NVbQf(访问码:fe58)

仔细研究了一下包里的内容,注册表里有很多是多余的东西,缓存和其他的玩意。
然后我就研究NSIS去了。
发现安装脚本其实往注册表里只写了十条左右的命令。
其他的主要是installer-helper.dll动态生成的。
作者: mayukun    时间: 2022-10-8 20:19
感谢大佬指点




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3