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日用新毒霸测试有效,不能保证长期有效或在其他安全软件上有效。)

 

目录
相关文章
|
存储 数据安全/隐私保护 C++
Qt 中文文档 Qt5.15 PDF Class (从官网Qt 5.15 翻译)
Qt 中文文档 Qt5.15 PDF Class (从官网Qt 5.15 翻译)
899 0
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
Qt实用技巧:实用掩码限制QLineEdit只能输入规定长度的数字、字母和字符
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
很火的DeepSeek到底是什么
DeepSeek,全称杭州深度求索人工智能基础技术研究有限公司,成立于2023年。因推出开源 AI 模型 DeepSeek-R1 而引起了广泛关注。与ChatGPT相比,大幅降低了推理模型的成本。
2717 36
|
5月前
|
存储 运维 NoSQL
【赵渝强老师】Redis的慢查询日志
Redis慢查询日志用于记录执行时间超过预设阈值的命令,帮助开发和运维人员定位性能问题。每条慢查询日志包含标识ID、发生时间戳、命令耗时及详细信息。配置参数包括`slowlog-max-len`(默认128)和`slowlog-log-slower-than`(默认10000微秒)。实战中可通过`slowlog get`获取日志、`slowlog len`查看长度、`slowlog reset`重置日志。建议线上环境将`slowlog-max-len`设为1000以上,并根据并发量调整`slowlog-log-slower-than`。需要注意的是,慢查询只记录命令执行时间。
298 5
|
10月前
|
Linux KVM 虚拟化
在Linux中,什么是虚拟化?并且列出常见的虚拟化技术。
在Linux中,什么是虚拟化?并且列出常见的虚拟化技术。
|
10月前
|
Kubernetes Linux KVM
在Linux中,有哪些虚拟化技术?
在Linux中,有哪些虚拟化技术?
|
11月前
|
存储 Shell API
对回收站里的文件进行操作
这篇文章介绍了如何使用C++对Windows系统的回收站进行操作,包括删除和恢复文件。 代码示例展示了如何遍历回收站中的文件,以及如何使用SHFILEOPSTRUCT结构体进行文件恢复或删除。此外,文章还提到了使用Boost等第三方库进行文件操作的高级接口,例如Boost.Filesystem,提供了跨平台的文件系统操作,包括文件路径处理、遍历目录、文件复制和删除等功能。 总的来说,文章提供了一种使用Windows API和Boost库在C++中操作回收站的方法。
155 2
|
11月前
|
编解码 程序员 开发者
【Python】已解决:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa1 in position 0: invalid start by
【Python】已解决:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa1 in position 0: invalid start by
9177 0
|
机器学习/深度学习 人工智能 物联网
未来操作系统的发展趋势与挑战
随着科技的不断进步,操作系统作为计算机系统的核心,也在不断演化和发展。本文从人工智能、物联网、云计算等方面探讨了未来操作系统的发展趋势和面临的挑战,展望了操作系统在技术革新中的重要地位。
|
Java 编译器 Go
QT软件开发:基于libVLC内核设计视频播放器
QT软件开发:基于libVLC内核设计视频播放器
1176 0
QT软件开发:基于libVLC内核设计视频播放器