2012-06-20 48 views
1

我有了开始菜单的NSIS安装文件夹硬编码使用此代码...NSIS安装程序开始菜单目录

Var SMDir ;Start menu folder 
!insertmacro MUI_PAGE_STARTMENU 0 $SMDir 

Section -StartMenu 
    !insertmacro MUI_STARTMENU_WRITE_BEGIN 0 
    CreateDirectory "$SMPrograms\MY Program\My Folder" 
    CreateShortCut "$DESKTOP\My Program" "$INSTDIR\start.exe" 
    CreateShortCut "$SMPROGRAMS\MY Program\My Shortcut.lnk" "$INSTDIR\start.exe" 
    CreateShortCut "$SMPROGRAMS\My Program\Uninstall.lnk" "$INSTDIR\uninstall.exe" 

这一切都从“选择开始菜单文件夹”它不分开工作不要让我改变默认的安装目录。

有没有办法解决这个问题,或者我怎样才能跳过这个页面,但仍然会触发StartMenu部分?

回答

1

如果您不想要startmenu选择页面,只需在-StartMenu部分删除!insertmacro MUI_PAGE_STARTMENU ...和两个!insertmacro MUI_STARTMENU_*宏。

如果你想允许用户选择目录,则必须使用变量,而不是硬编码路径:

outfile test.exe 
name "SM Test" 
requestexecutionlevel user ;Single user/"Just me" installer 

!define MUI_COMPONENTSPAGE_NODESC 
!include mui2.nsh 

Var SMDir ;Start menu folder 
!insertmacro MUI_PAGE_COMPONENTS 
;!define MUI_STARTMENUPAGE_DEFAULTFOLDER "MY Program" ;Default, name is used if not defined 
!insertmacro MUI_PAGE_STARTMENU 0 $SMDir 
!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_LANGUAGE English 


Section -StartMenu 
!insertmacro MUI_STARTMENU_WRITE_BEGIN 0 ;This macro sets $SMDir and skips to MUI_STARTMENU_WRITE_END if the "Don't create shortcuts" checkbox is checked... 
CreateDirectory "$SMPrograms\$SMDir" 
CreateShortCut "$SMPROGRAMS\$SMDir\Myapp.lnk" "$INSTDIR\start.exe" 
!insertmacro MUI_STARTMENU_WRITE_END 
SectionEnd 

Section "Desktop Shortcut" 
CreateShortCut "$DESKTOP\Myapp.lnk" "$INSTDIR\start.exe" 
SectionEnd 

(如果要安装作为管理员,那么你应该访问$ SMPROGRAMS之前调用SetShellVarContext all你应该不会创建桌面快捷方式)

+0

安德斯救援再次:)谢谢 – fightstarr20