簡體   English   中英

在完成頁面中禁用后退按鈕

[英]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.

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