当用户在安装程序时选择了相应的语言后,我们希望我们的程序中的相应的语言选项也变相同的设置,这样避免用户在进入程序后再一次选择语言设置。
在此我们用到了$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基本语法---注册表的操作
本文介绍如何在NSIS安装程序中根据用户选择的语言自动设置程序语言,通过读取$Language变量并将配置写入INI文件或注册表。同时,提供了Qt读取和写入注册表的示例代码。
1361

被折叠的 条评论
为什么被折叠?



