天天看點

NSIS:延時啟動軟體的幾個方法及探索

有時候,我們想要某軟體開機啟動,但又不要拖慢開機速度,那麼,延時啟動技術就顯得比較重要了。輕狂在這方面曾經研究過,也實作了自己想要的功能,看看我是怎麼做的吧!

延時啟動解決方案一:批處理方式

1、用批處理寫好延時啟動代碼,把這個批處理命名為“延時啟動輕狂志.bat”并在安裝應用軟體時釋放到安裝目錄下。

<code>01</code>

<code>@</code><code>echo</code> <code>off</code>

<code>02</code>

<code>03</code>

<code>if</code> <code>"%1"</code> <code>== </code><code>"h"</code> <code>goto begin</code>

<code>04</code>

<code>mshta vbscript:createobject(</code><code>"wscript.shell"</code><code>).run(</code><code>"%~nx0 h"</code><code>,0)(window.close)&amp;</code><code>exit</code>

<code>05</code>

<code>:begin</code>

<code>06</code>

<code>07</code>

<code>ping</code> <code>-n 60 127.1&gt;nul</code>

<code>08</code>

<code>start %</code><code>cd</code><code>%\輕狂志.exe</code>

<code>09</code>

<code>10</code>

<code>exit</code>

2、安裝應用軟體時建立這個批處理的快捷方式到系統的啟動目錄中。

<code>1</code>

<code>CreateShortCut </code><code>"$SMSTARTUP\延時啟動輕狂志.lnk"</code> <code>"$INSTDIR\延時啟動輕狂志.bat"</code>

這樣即可實作延時啟動的功能。

但有兩點不太完美:系統自動運作批處理時,會有一個黑框框閃一下。而且建立快捷方式時安全軟體會有“風險提示”,一不小心就會把快捷方式删掉了。

今天又研究了一個新的方法——延時啟動解決方案二:VBS方式

1、寫一個VBS腳本檔案“延時啟動輕狂志.vbs”并在安裝應用軟體時釋放到安裝目錄下。

<code>Dim delayer</code>

<code>2</code>

<code>Set delayer = CreateObject(</code><code>"WScript.Shell"</code><code>)</code>

<code>3</code>

<code>WScript.</code><code>sleep</code> <code>9000</code>

<code>4</code>

<code>delayer.Run </code><code>"輕狂志.exe"</code><code>, 0, FALSE</code>

<code>5</code>

<code>Set delayer = Nothing</code>

<code>6</code>

<code>WScript.quit</code>

2、安裝應用軟體時建立這個VBS腳本檔案的快捷方式到系統的啟動目錄中。

<code>CreateShortCut </code><code>"$SMSTARTUP\延時啟動輕狂志.lnk"</code> <code>"$INSTDIR\延時啟動輕狂志.vbs"</code>

這種方式與第一種相比:啟動時不會有黑框框顯示,但建立快捷方式時安全軟體依然會有“風險提示”。

那麼,我們通過NSIS做一個延時啟動的更新版!

1、建一個空内容的VBS腳本檔案“延時啟動輕狂志.vbs”并在安裝時釋放到安裝目錄下。

2、在NSIS腳本中對“延時啟動輕狂志.vbs”進行修改。

<code>;修改延時啟動檔案</code>

<code>  </code><code>FileOpen $1 </code><code>"$INSTDIR\延時啟動輕狂志.vbs"</code> <code>w</code>

<code>  </code><code>FileWrite $1 </code><code>'Dim delayer$\r$\n'</code>

<code>  </code><code>FileWrite $1 </code><code>'Set delayer = CreateObject("WScript.Shell")$\r$\n'</code>

<code>  </code><code>FileWrite $1 </code><code>'WScript.sleep 5000$\r$\n'</code>

<code>  </code><code>FileWrite $1 </code><code>'delayer.Run """$INSTDIR\輕狂志.exe""", 0, FALSE$\r$\n'</code>

<code>7</code>

<code>  </code><code>FileWrite $1 </code><code>'Set delayer = Nothing$\r$\n'</code>

<code>8</code>

<code>  </code><code>FileWrite $1 </code><code>'WScript.quit$\r$\n'</code>

<code>9</code>

<code>  </code><code>FileClose $1</code>

3、把修改後的VBS腳本檔案移動到作業系統啟動檔案夾中。

<code>;堆棧模式移動延時啟動檔案</code>

<code>Push </code><code>"$SMSTARTUP\延時啟動輕狂志.vbs"</code> <code>;目标檔案</code>

<code>Push </code><code>"$INSTDIR\延時啟動輕狂志.vbs"</code> <code>;來源檔案</code>

<code>System::Call </code><code>"Kernel32::MoveFileExA(t s,t s,i 2)"</code>

哈哈,這種方式既沒有黑框框顯示,安全軟體也不會提示風險(輕狂在2014年1月21日用新毒霸測試有效,不能保證長期有效或在其他安全軟體上有效。)

繼續閱讀