簡體   English   中英

NSIS安裝程序:安裝前在目錄頁面上運行功能

[英]NSIS Installer: Run a function at the directory page before installation

我創建了一個非常簡單的安裝程序,它不添加任何注冊表項或任何內容。 它只是安裝一些python可執行程序的文件。 安裝程序僅包含第一步,詢問安裝目錄,然后安裝軟件。

問題 :如果安裝了程序的先前版本,或者用戶選擇的目錄中包含文件,我想通過在安裝開始之前運行功能CleanInstallationDirectory進行一些檢查。

我的問題是 :當用戶選擇目錄時而不是在安裝進度開始后,如何運行該功能? 我想運行該功能,並基於該功能的返回或基於該功能的內部調用顯示一條消息,確認該目錄中的所有內容都將被刪除,然后如果用戶確認,則安裝開始。

替代方法 :如果不可能這樣做,那么我可以進行以下操作:如果用戶在安裝過程中說“否”,則安裝程序應返回目錄頁面詢問其他目錄。

這是我當前擁有的NSIS安裝程序腳本:

  Function CleanInstallationDirectory

## do stuff

  FunctionEnd


  Name "My Software"
  OutFile "GNOMEAcqInstaller.exe"

  InstallDir "D:\MySoftware"

  RequestExecutionLevel admin



  !define MUI_ABORTWARNING

  !insertmacro MUI_PAGE_DIRECTORY
  !insertmacro MUI_PAGE_INSTFILES

  !insertmacro MUI_LANGUAGE "English"



Section "Installation" InstallSection

  SetOutPath "$INSTDIR"

  Call CleanInstallationDirectory

  File /r "MyFiles\*"
SectionEnd

  LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."

謝謝。

如果您在MUI文檔的“頁面自定義功能”部分中查找,則會找到一些定義的名稱,您可以在每頁的基礎上進行設置,以調用自定義功能。 您希望MUI_PAGE_CUSTOMFUNCTION_SHOWMUI_PAGE_CUSTOMFUNCTION_LEAVE取決於您希望函數何時運行。

!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE CleanInstallationDirectory
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

如果您在自定義請假函數中調用Abort ,則可以防止安裝程序進入下一頁。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM