卸载程序的自定义文本

时间:2018-12-15 16:16:47

标签: nsis uninstaller mui

所以我为某些游戏制作了补丁安装程序。尽管NSIS做出了愚蠢的设计决策,但它仍然可以很好地工作。我将NSIS 3.03与MUI2结合使用。

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

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

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

如何在卸载程序中更改其他文本?对于10岁的安装程序创作者的第三个主要版本而言,这种监督是愚蠢的。 WTF?

1 个答案:

答案 0 :(得分: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
相关问题