【问题标题】:NSIS Use selected language for uninstallerNSIS 为卸载程序使用选定的语言
【发布时间】:2011-07-05 02:10:35
【问题描述】:

我正在开发 NSIS 安装程序,我刚刚在安装程序中添加了多语言。 我希望安装程序在每次用户单击安装程序时显示语言对话框,所以我从我的 nsi 文件中删除了这两行

!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"

这也会强制卸载程序在用户每次点击时显示语言对话框。

我想禁用安装程序中的语言对话框,或者让它使用用户在安装程序时选择的语言

感谢帮助。

【问题讨论】:

    标签: dialog nsis uninstallation


    【解决方案1】:

    您可以在安装过程中将 $language 变量保存在注册表中,并将其读入 un.onInit 中的 $language。如果您不想显示语言对话框,请不要在 .onInit 中调用它

    【讨论】:

    • 如何将它保存在注册表中,然后在安装过程中读取它?
    • @Ron: 在某个部分中,使用WriteRegDWORD 保存$language(您可以将它保存在与卸载信息相同的位置)并在卸载程序中使用ReadRegDWORD $language HKLM "software\. ..path here\" un.onInit 中的语言
    【解决方案2】:

    使用这个:

    Function un.onInit
    
      !insertmacro MUI_UNGETLANGUAGE
      
    FunctionEnd
    

    您还需要像这样设置 MUI_LANGDLL_REGISTRY_*:

    !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" 
    !define MUI_LANGDLL_REGISTRY_KEY "Software\YourAppName" 
    !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
    

    【讨论】:

      猜你喜欢
      • 2015-09-23
      • 2012-01-26
      • 2012-02-12
      • 2014-09-13
      • 2013-11-09
      • 2011-02-18
      • 2017-11-15
      • 2011-07-25
      • 2016-06-30
      相关资源
      最近更新 更多