【问题标题】:nsis as a installer of other installsnsis 作为其他安装的安装程序
【发布时间】:2012-08-20 04:19:48
【问题描述】:

我正在将 NSIS 用于其他安装的安装程序。复制所有需要的文件后,我运行它:

Section "Indusoft" SEC02
  SetOutPath $INSTDIR\DISK1
  ExecWait "$INSTDIR\DISK1\setup.exe"
SectionEnd

Section -Prerequisites
  SetOutPath $INSTDIR\Prerequisites
  MessageBox MB_YESNO "Install FTP Server?" /SD IDYES IDNO endFTPServer
    ExecWait "$INSTDIR\Prerequisites\FileZilla_Server-0_9_41"
    Goto endFTPServer
  endFTPServer:
  MessageBox MB_YESNO "Install MS SQL Server?" /SD IDYES IDNO endMSSQLServer
    ExecWait "$INSTDIR\Prerequisites\SQLEXPRWT_x86_ENU.exe"
    Goto endMSSQLServer
  endMSSQLServer:
SectionEnd

现在我希望我的应用程序将运行已安装在 Indusoft 部分中的 exe。我的想法是打开一个对话框,用户在其中选择文件,然后创建用户选择的文件的快捷方式:

CreateShortCut "$SMPROGRAMS\My application\My application.lnk" "$INSTDIR\AppMainExe.exe"

这可能吗?

谢谢

编辑: 我发现选择了文件,但是这样我创建了一个在完成对话框之后出现的新页面,我怎样才能让它在完成之前出现?谢谢

Var Dialog
Var Text

Page custom nsDialogsPage

Function nsDialogsPage

    nsDialogs::Create 1018
    Pop $Dialog

    nsDialogs::SelectFileDialog
    Pop $Text

    ${NSD_CreateText} 0 13u 100% -13u $Text
    Pop $Text

    nsDialogs::Show

FunctionEnd

【问题讨论】:

  • 您需要在插入FINISH页面之前添加此页面自定义nsDialogsPage。

标签: nsis


【解决方案1】:

页面的显示顺序与源代码中的页面命令相同:

!insertmacro MUI_PAGE_INSTFILES
Page custom YourCustomPage
!insertmacro MUI_PAGE_FINISH

【讨论】:

  • 谢谢 :) 你知道我如何将选定的文件添加到快捷方式吗?我是这样做的: CreateShortCut "$SMPROGRAMS\My application\My application.lnk" "$Text" CreateShortCut "$DESKTOP\My application.lnk" "$Text" 但快捷方式指向:C:\Users\ze\Desktop \263194
猜你喜欢
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多