NSIS:延时启动软件的几个方法及探索

简介: 原文 NSIS:延时启动软件的几个方法及探索 有时候,我们想要某软件开机启动,但又不要拖慢开机速度,那么,延时启动技术就显得比较重要了。轻狂在这方面曾经研究过,也实现了自己想要的功能,看看我是怎么做的吧!   延时启动解决方案一:批处理方式 1、用批处理写好延时启动代码,把这个批处理命名为“延时启动轻狂志.bat”并在安装应用软件时释放到安装目录下。

原文 NSIS:延时启动软件的几个方法及探索

有时候,我们想要某软件开机启动,但又不要拖慢开机速度,那么,延时启动技术就显得比较重要了。轻狂在这方面曾经研究过,也实现了自己想要的功能,看看我是怎么做的吧!

 

延时启动解决方案一:批处理方式

1、用批处理写好延时启动代码,把这个批处理命名为“延时启动轻狂志.bat”并在安装应用软件时释放到安装目录下。

01 @echo off
02  
03 if "%1" == "h" goto begin
04 mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&exit
05 :begin
06  
07 ping -n 60 127.1>nul
08 start %cd%\轻狂志.exe
09  
10 exit

2、安装应用软件时创建这个批处理的快捷方式到系统的启动目录中。

1 CreateShortCut "$SMSTARTUP\延时启动轻狂志.lnk" "$INSTDIR\延时启动轻狂志.bat"

这样即可实现延时启动的功能。

但有两点不太完美:系统自动运行批处理时,会有一个黑框框闪一下。而且创建快捷方式时安全软件会有“风险提示”,一不小心就会把快捷方式删掉了。

 

今天又研究了一个新的方法——延时启动解决方案二:VBS方式

1、写一个VBS脚本文件“延时启动轻狂志.vbs”并在安装应用软件时释放到安装目录下。

1 Dim delayer
2 Set delayer = CreateObject("WScript.Shell")
3 WScript.sleep 9000
4 delayer.Run "轻狂志.exe", 0, FALSE
5 Set delayer = Nothing
6 WScript.quit

2、安装应用软件时创建这个VBS脚本文件的快捷方式到系统的启动目录中。

1 CreateShortCut "$SMSTARTUP\延时启动轻狂志.lnk" "$INSTDIR\延时启动轻狂志.vbs"

这种方式与第一种相比:启动时不会有黑框框显示,但创建快捷方式时安全软件依然会有“风险提示”。

 

那么,我们通过NSIS做一个延时启动的升级版!

1、建一个空内容的VBS脚本文件“延时启动轻狂志.vbs”并在安装时释放到安装目录下。

2、在NSIS脚本中对“延时启动轻狂志.vbs”进行修改。

1 ;修改延时启动文件
2   FileOpen $1 "$INSTDIR\延时启动轻狂志.vbs" w
3   FileWrite $1 'Dim delayer$\r$\n'
4   FileWrite $1 'Set delayer = CreateObject("WScript.Shell")$\r$\n'
5   FileWrite $1 'WScript.sleep 5000$\r$\n'
6   FileWrite $1 'delayer.Run """$INSTDIR\轻狂志.exe""", 0, FALSE$\r$\n'
7   FileWrite $1 'Set delayer = Nothing$\r$\n'
8   FileWrite $1 'WScript.quit$\r$\n'
9   FileClose $1

3、把修改后的VBS脚本文件移动到操作系统启动文件夹中。

1 ;堆栈模式移动延时启动文件
2 Push "$SMSTARTUP\延时启动轻狂志.vbs" ;目标文件
3 Push "$INSTDIR\延时启动轻狂志.vbs" ;来源文件
4 System::Call "Kernel32::MoveFileExA(t s,t s,i 2)"

哈哈,这种方式既没有黑框框显示,安全软件也不会提示风险(轻狂在2014年1月21日用新毒霸测试有效,不能保证长期有效或在其他安全软件上有效。)

 

目录
相关文章
|
2月前
|
Shell 测试技术
Airtest如何自动连接重启后的设备并继续执行自动化脚本呢?
Airtest如何自动连接重启后的设备并继续执行自动化脚本呢?
|
Windows
电脑win系统开机自动运行批处理、脚本等的方法/开机自动执行bat脚本
电脑win系统开机自动运行批处理、脚本等的方法/开机自动执行bat脚本
908 0
关于 qml程序在目标机上开发时运行出现不断闪屏现象的 解决方法
关于 qml程序在目标机上开发时运行出现不断闪屏现象的 解决方法
关于 qml程序在目标机上开发时运行出现不断闪屏现象的 解决方法
|
11月前
|
Shell Android开发
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
720 1
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
|
11月前
|
安全 Java Windows
​❤️​Windows下创建【任务计划程序】​❤️定期重启服务器中的【JAR包脚本】​❤️实现JAR包重启防止卡顿服务超时中断❤️
​❤️​Windows下创建【任务计划程序】​❤️定期重启服务器中的【JAR包脚本】​❤️实现JAR包重启防止卡顿服务超时中断❤️
265 0
关于 Qt在线安装速度较慢 的解决方法
关于 Qt在线安装速度较慢 的解决方法
关于 Qt在线安装速度较慢 的解决方法
|
Ubuntu Shell 计算机视觉
Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)
Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)
Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)
|
IDE 开发工具
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
|
网络协议 Shell Linux
Frida使用文档(一)安装、启动、运行、关闭
Frida使用文档(一)安装、启动、运行、关闭