2015-02-10 607 views

回答

0

您可以創建兩個安裝程序:

1)你的主安裝程序 - 它所有的東西,並在年底將其寫入註冊表項和副本重啓後運行文件:

WriteRegStr "HKLM" "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "Program Name" "$INSTDIR\File.exe" 
SetOutPath "$INSTDIR" 
File "File.exe" 

File.exe是來自第2點的應用程序)。將它保存在你的應用程序中是很好的。安裝文件夾。

2)安裝程序(或者不如說在NSIS簡單的應用程序),這是重啓後運行並打開網站(和退出馬上):

Function .onInit 
    ExecShell "open" "http://www.visual-installer.com/" SW_SHOWNORMAL 
    Quit 
FunctionEnd 

(只是劇本的片段)

1

這不是一個好主意,你不應該這樣做恕我直言。

如果你仍然堅持這樣做,那麼你需要決定你想要定位的用戶。任何用戶?運行安裝程序的用戶?只有管​​理員?您無法控制重新引導後哪些用戶登錄。

如果您只想爲管理員運行它,那麼您可以使用由Slappy建議的RunOnce解決方案,因爲HKLM RunOnce只能由管理員執行。

如果你想運行它的任何用戶然後你必須把東西放在共享的開始菜單啓動文件夾。使用AccessControl plug-in授予所有人(WD)的訪問權限Delete非常重要。 (我們無法在註冊表中使用Run鍵,因爲我們無法將ACL更改應用於值,而僅適用於鍵)。只有當您的安裝程序運行時才能執行此操作,但我認爲這是因爲只有提升的安裝程序才能進行需要重新啓動的全局更改。您必須在NSIS中使用SetShellVarContext all才能訪問共享的$SMStartup文件夾。

您可以創建一個快捷方式或啓動程序本身,重要的部分是刪除自己。您可以使用簡單的批處理文件逃脫:

@echo off 
start http://stackoverflow.com/questions/tagged/nsis 
del "%~f0" 
相關問題