![](/img/trans.png)
[英]NSIS question : Can I disable the “Finish” button in “MUI_PAGE_FINISH” page when the “.onInstSuccess” function not finish?
[英]Disable back button in finish page
對於我的安裝,我添加了新的自定義頁面。 它出現在MUI_PAGE_INSTFILES之后。 但在此自定義頁面不存在之前。 問題是,添加此自定義頁面后,它已完成頁面和完成頁面現在已啟用后退按鈕。在它被禁用之前(我沒有做任何編碼之前禁用后退按鈕)。 但添加新的自定義頁面完成頁面后啟用了后退按鈕。
我有下面的頁面順序
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "${Stpath}read me.txt"
!define MUI_PAGE_CUSTOMFUNCTION_PRE wel_pre
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryPageLeave
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
Page custom InstallPageCreate checkinstdir
!define MUI_FINISHPAGE_RUN "$INSTDIR\setupx.exe"
!define MUI_FINISHPAGE_RUN_PARAMETERS ""
!define MUI_PAGE_CUSTOMFUNCTION_PRE welfinish
!define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishPageShow
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE myleave
!insertmacro MUI_PAGE_FINISH
在頁面自定義之前, InstallPageCreate checkinstdir不存在,並且完成頁面沒有啟用后退按鈕。
在完成頁面中添加自定義頁面后退按鈕后,將啟用。僅當某個命令行傳遞給安裝程序時,才會顯示自定義頁面。 因此,如果沒有為我的setup.exe傳遞命令行,則在MUI_PAGE_INSTFILES之后,完成頁面到來。如果用戶單擊后退按鈕,則再次顯示MUI_PAGE_INSTFILES,文件將復制到安裝目錄。 此外,如果出現該自定義頁面,則該頁面已禁用后退按鈕,這是正確的。 此外,我需要知道這個后退按鈕禁用的位置? 它是在宏MUI_PAGE_INSTFILES(nsis builtin宏)中完成的嗎?
所以我需要在完成頁面中禁用后退按鈕。 請幫忙
makensis.exe(CEXEBuild :: ProcessPages)中有一些代碼在頁面上設置了一個標志:p-> flags | = PF_BACK_ENABLE; 和UI.c中的代碼檢查此標志。 要覆蓋此使用頁面顯示回調函數:
Function InstallPageCreate
StartMenu::Init /autoadd "Dummy page"
StartMenu::Show
FunctionEnd
!include MUI2.nsh
!insertmacro MUI_PAGE_INSTFILES
Page custom InstallPageCreate
!define MUI_FINISHPAGE_RUN "$INSTDIR\setupx.exe"
!define MUI_FINISHPAGE_RUN_PARAMETERS ""
!define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishPageShow
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English
Function FinishPageShow
GetDlgItem $0 $HWNDPARENT 3
EnableWindow $0 0
FunctionEnd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.