2009-10-04 120 views
19

我想第一次創建一個使用NSIS現代用戶界面的安裝程序。我想知道如何爲用戶添加一個選項(複選框),以便選擇在完成頁面(安裝程序的最後一個屏幕)上創建桌面快捷方式以及已經存在的「運行XXXX」選項。如何在NSIS安裝程序的完成頁面上添加桌面快捷方式選項?

+3

兩個懇求:(1)不要選中「把沒用桌面圖標「複選框。與Vista中的搜索相比,桌面在Vista中的啓動方式要差得多。 (b)確保運行復選框不會使程序以管理員權限運行,而是以當前交互式登錄的用戶身份運行。 – Joey 2009-10-04 21:59:18

回答

30

如果您不使用Finish頁面上的自述複選框,你可以用它來執行任何你想要的動作:

Function finishpageaction 
CreateShortcut "$desktop\foo.lnk" "$instdir\foo.exe" 
FunctionEnd 

!define MUI_FINISHPAGE_SHOWREADME "" 
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED 
!define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut" 
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION finishpageaction 
+0

謝謝!這正是我所需要的! – takoloco 2009-10-05 08:18:44

+1

我們不應該使用MUI_FINISHPAGE_RUN,MUI_FINISHPAGE_RUN_TEXT,MUI_FINISHPAGE_RUN_FUNCTION,MUI_PAGE_FINISH來代替嗎?這些和MUI_FINISHPAGE_SHOWREADME等有什麼區別? – AnAurelian 2012-03-15 13:33:09

+0

@David除了默認文本以外沒有真正的區別。 – Anders 2012-03-15 17:17:22

8

另一種方法是允許用戶添加桌面圖標的最簡單方法是創建一個自定義部分。然後用戶可以選擇在安裝程序的「功能」頁面中添加快捷方式,而不必對UI進行大量修改。

Section "Desktop Shortcut" SectionX 
    SetShellVarContext current 
    CreateShortCut "$DESKTOP\Your Program.lnk" "$INSTDIR\YourProgram.exe" 
SectionEnd 
+0

由於這將選項放在安裝程序的一個不尋常的,意想不到的,經常簡單的跳過部分,我建議不要這樣做。詢問用戶是否想要放置快捷方式,無論出於何種原因,預計將在安裝過程的最後。 – 2011-03-06 16:36:18

+0

一般而言,它可以在安裝結束時進行,因爲它是一個可以完全跳過的小細節。桌面快捷方式是_convenient,但不是必需的。它們不是必需的,才能安裝該應用程序。在安裝過程的結尾處保留這些選項有助於讓用戶感覺更多的工作可以花費更少的精力完成。 – 2013-06-17 08:48:49

相關問題