0

所以我为某些游戏制作了补丁安装程序。尽管 NSIS 的设计决策很愚蠢,但它工作得很好。我将 NSIS 3.03 与 MUI2 一起使用。

由于补丁的性质(它不是单独的应用程序,只是应用在现有程序上的补丁),我不得不使用几乎所有安装程序的自定义文本(如 MUI_WELCOMEPAGE_TITLE、MUI_WELCOMEPAGE_TEXT 等)。我的母语语法没有帮助。

但后来我愚蠢地想包括卸载程序。虽然它有效,但似乎几乎没有自定义文本。只有 MUI_UNCONFIRMPAGE_TEXT_TOP 和 MUI_UNCONFIRMPAGE_TEXT_LOCATION 有效。由于上述问题(补丁而不是真正的应用程序,语法),卸载程序的其他默认文本看起来像废话。

例如,在卸载程序的欢迎页面上有类似“在开始卸载之前,请确保 [NAME OF PATCH TO GAME] 未运行。”的文字。它应该类似于“在开始卸载之前,请确保 [NAME OF GAME,NOT NAME OF PATCH] 没有运行。”。不,没有 MUI_UNWELCOMEPAGE_TEXT 或类似的东西。

如何更改卸载程序中的其他文本?对于第三个主要版本的 10 岁安装程序创建者来说,这种疏忽是愚蠢的。怎么回事?

4

1 回答 1

1

从文档中:

页面设置适用于单个页面,应在插入页面宏之前进行设置。相同的设置可用于安装程序和卸载程序页面。如果您希望将其应用于多个页面,则必须重复设置。

!include MUI2.nsh
!define MUI_WELCOMEPAGE_TEXT "Installer blah blah"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!define MUI_WELCOMEPAGE_TEXT "Uninstaller blah blah"
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Section
SetOutPath "$InstDir"
WriteUninstaller "$InstDir\Un.exe"
ExecShell "" "$InstDir\Un.exe"
SectionEnd

Section Uninstall
Delete "$InstDir\Un.exe"
RMDir "$InstDir"
SectionEnd
于 2018-12-15T21:23:18.077 回答