INNO设置将多行文本常量写入注册表

时间:2015-05-14 15:23:39

标签: installer inno-setup

在安装过程中,我想将长多行/段落的文本写入注册表值

写入注册表值很容易

[注册表] 根:HKCU;子键:“软件\我的公司\我的软件”; ValueType:string; ValueName:“消息”; ValueData:“some text”

但我宁愿定义一个多行文本常量来替换“some text”

即。

之类的东西

mytext =“一些长文本值\ r \ n到另一条线”

Root:HKCU;子键:“软件\我的公司\我的软件”; ValueType:string; ValueName:“消息”; ValueData:#mytext

我可能很沉闷,但我看不出怎么做 - 任何帮助都非常感激。感谢

1 个答案:

答案 0 :(得分:2)

使用简单变量应该有效。

#define mytext "some long text value\r\ngoing onto another line" 

[Registry] Root: HKCU; Subkey: "Software\my company\My software"; ValueType: string; ValueName: "Message"; ValueData: "{#mytext}"

但是,将ValueType: string写入Windows中的注册表意味着您正在编写REG_SZ\r\n将在注册表值中显示为文本。大多数注册表工具不支持REG_SZ值中的回车。他们只会显示字符。

您必须自己在使用该注册表值的程序中处理它。一些例子here

如果符合您的要求,更好的解决方案是告诉inno使用REG_MULTI_SZValueType: multiszREG_MULTI_SZ是一个由空字符串(\ 0)终止的以空字符结尾的字符串序列。使用inno multisz的类型值,您可以使用名为{break}的特殊常量来嵌入换行符。有关用法,请参阅documentation