NSIS 随着用户切换安装语言,程序跟随切换到对应的安装语言

本文介绍如何在NSIS安装程序中根据用户选择的语言自动设置程序语言,通过读取$Language变量并将配置写入INI文件或注册表。同时,提供了Qt读取和写入注册表的示例代码。

当用户在安装程序时选择了相应的语言后,我们希望我们的程序中的相应的语言选项也变相同的设置,这样避免用户在进入程序后再一次选择语言设置。
  在此我们用到了$Language变量,读取该变量的值,并根据此值将相应的配置写到ini或者注册表中。
  我们将在onInstSuccess中实现该功能.
 1. 代码如下:

Function .onInstSuccess

IntCmp $Language 2052 SetLangChinese
IntCmp $Language 1033 SetLangEnglish

SetLangChinese:
WriteINIStr $INSTDIRconfig.ini "System" "Language" "Chinese"
Goto SetLangEnd

SetLangEnglish:
WriteINIStr $INSTDIRconfig.ini "System" "Language" "English"

SetLangEnd:


FunctionEnd

 

写入注册表例子

WriteRegStr   HKLM "SOFTWARE\Classes\Installer\Dependencies\{ce085a78-074e-4823-8dc1-8a721b94b76d}" "language" "english"

具体的可以查各个语言对应的码

2 .Qt 读取和写入注册表:


#include <QSettings>
 
        #define RUN_KEY "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\windows\\CurrentVersion\\run"
        QSettings *pReg = new QSettings(RUN_KEY, QSettings::NativeFormat);
        
    pReg->setValue("key", "value"); //设置注册表值
 
        QVariant v = pReg->value("key"); //读取注册表值
        v.toString();

      delete reg;

3. 具体查看 NSISI基本语法---注册表的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值