嘿,
我试图从mui2切换到umui,而我在编码方面仍然很差,所以我希望你们能帮我。
!define PRODUCT_NAME "UMUI-Setup"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "Marvin Schulz"
;Plugin Files
!include "nsArray.nsh"
!include "MUIEx.nsh"
!include "InstallOptions.nsh"
!include "NsDialogs.nsh"
!include "LogicLib.nsh"
!include "FileAssociationVNC.nsh"
!include "Registry.nsh"
;UMUI Settings
!define MUI_ABORTWARNING
;Require Adminrights
RequestExecutionLevel admin
!insertmacro UMUI_PAGE_MULTILANGUAGE
!define UMUI_WELCOMEPAGE_ALTERNATIVETEXT
!insertmacro MUI_PAGE_WELCOME
!define ModifyWelcome
!define LeaveWelcome
!insertmacro MUI_PAGE_LICENSE "C:\Program Files (x86)\NSIS\Docs\SkinnedControls\license.txt"
!insertmacro MUI_PAGE_COMPONENTS
!define UMUI_ALTERNATIVESTARTMENUPAGE_SETSHELLVARCONTEXT
!define UMUI_ALTERNATIVESTARTMENUPAGE_USE_TREEVIEW
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "NSIS\Contrib"
!define UMUI_CONFIRMPAGE_TEXTBOX confirm_function
!insertmacro MUI_PAGE_INSTFILES
!define MUI_FINISHPAGE_SHOWREADME "C:\installer.ini"
!define MUI_FINISHPAGE_LINK "SkinnedControls Home Page"
!define MUI_FINISHPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/"
!insertmacro MUI_PAGE_FINISH
!define UMUI_ABORTPAGE_LINK "SkinnedControls Home Page"
!define UMUI_ABORTPAGE_LINK_LOCATION "http://ultramodernui.sourceforge.net/"
!insertmacro UMUI_PAGE_ABORT
ChangeUI IDD_INSTFILES "${NSISDIR}\Contrib\UIs\default_sb.exe"
;Languages
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "Hungarian"
!insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Japanese"
!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "PortugueseBR"
!insertmacro MUI_LANGUAGE "German"
;Reserve files
var checkbox
var checkboxstate
Function ModifyWelcome
${NSD_CreateLabel} 120u -50u 100% 22u "HINWEIS: Wenn die UAC noch an ist $\n werden die meisten Pakete nicht funktionieren."
${NSD_CreateCheckBox} 120u -20u 50% 22u "Installationssicherung auf C:\Daten auswaehlen"
Pop $checkbox
SetCtlColors $checkbox "" ${MUI_BGCOLOR}
${NSD_Check} $checkbox
FunctionEnd
Function LeaveWelcome
${NSD_GetState} $checkbox $checkbox
${if} $checkbox != 0
MessageBox MB_OK "Installationssicherung auf C:\Daten wurde ausgewaehlt"
StrCpy $checkboxstate "1"
${else}
MessageBox MB_OK "Installationssicherung auf C:\Daten wurde nicht ausgewaehlt"
StrCpy $checkboxstate "0"
${endif}
Push $checkboxstate
CreateDirectory C:\Daten
FunctionEnd
Function .onInit
UserInfo::GetAccountType
pop $0
${If} $0 != "admin" ;Require admin rights on NT4+
MessageBox mb_iconstop "Administrator Rechte benötigt!"
SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
Quit
${EndIf}
!insertmacro UMUI_MULTILANG_GET
!define UMUI_BUTTONIMAGE_BMP "${NSISDIR}\Contrib\SkinnedControls\skins\defaultbtn.bmp"
!define UMUI_SCROLLBARIMAGE_BMP "${NSISDIR}\Contrib\SkinnedControls\skins\defaultsb.bmp"
FunctionEnd
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "UMUI-Setup.exe"
InstallDir "$PROGRAMFILES\"
ShowInstDetails show
SectionGroup "Test"
Section /o "Benutzerkontensteuerung deaktivieren"
${registry::Write} "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System" "EnableLUA" "0x00000000" "REG_DWORD" $R0
SectionEnd
SectionGroupEnd这就是我的代码,我得到了函数ModifyWelcome和LeaveWelcome,当我试图编译这个函数时,我得到了"install“LeaveWelcome,而不是引用--零代码”,和modifyWelcome一样。所以,想想这意味着什么,或者我要做什么,我希望你能帮助我,并为我的英语道歉。
发布于 2019-10-11 13:09:26
“安装函数没有引用-零代码”意味着您的代码包含一个从未被任何其他代码调用的函数。这通常意味着您忘记调用或配置该函数。
在您的示例中,您有一些未使用的与页面相关的函数。
如果您不需要/不需要该代码,请删除它们。如果您确实希望调用它们,请添加正确的定义:
...
!define UMUI_WELCOMEPAGE_ALTERNATIVETEXT
!define MUI_PAGE_CUSTOMFUNCTION_SHOW ModifyWelcome
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE LeaveWelcome
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "C:\...
...https://stackoverflow.com/questions/58338752
复制相似问题