当前位置: > 教程 >

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

  • 教程
  • 2014-01-21 16:36

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

 

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

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

@echo off

if "%1" == "h" goto begin 
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&exit 
:begin

ping -n 60 127.1>nul 
start %cd%\轻狂志.exe

exit

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

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

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

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

 

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

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

Dim delayer
Set delayer = CreateObject("WScript.Shell")
WScript.sleep 9000
delayer.Run "轻狂志.exe", 0, FALSE
Set delayer = Nothing
WScript.quit

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

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

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

 

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

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

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

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

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

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

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

猜你喜欢

最新评论

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!