Installation INNO安装程序将多行文本常量写入注册表

Installation INNO安装程序将多行文本常量写入注册表,installation,inno-setup,Installation,Inno Setup,在安装过程中,我想将一个长的多行/段落文本块写入注册表值 写入注册表值非常简单 [登记处] 根:香港中文大学;子项:“软件\我的公司\我的软件”;ValueType:字符串;ValueName:“消息”;ValueData:“一些文本” 但我宁愿定义一个多行文本常量来替换“some text” i、 例如 mytext=“某些长文本值\r\n正在另一行上” 根:香港中文大学;子项:“软件\我的公司\我的软件”;ValueType:字符串;ValueName:“消息”;ValueData:#myt

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

写入注册表值非常简单

[登记处] 根:香港中文大学;子项:“软件\我的公司\我的软件”;ValueType:字符串;ValueName:“消息”;ValueData:“一些文本”

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

i、 例如

mytext=“某些长文本值\r\n正在另一行上” 根:香港中文大学;子项:“软件\我的公司\我的软件”;ValueType:字符串;ValueName:“消息”;ValueData:#mytext


我可能有点迟钝,但我不知道该怎么做——感谢您的帮助。谢谢

使用一个简单的变量应该可以

#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
值中的回车。它们将简单地显示字符

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


如果符合您的要求,更好的解决方案是告诉inno使用带有
ValueType:multisz
REG\u MULTI\u SZ
。是以空字符串(\0)结尾的以null结尾的字符串序列。使用inno
multisz
的类型值,可以使用名为
{break}
的特殊常量嵌入换行符。有关用法,请参阅

注册表工具显示什么并不重要,重要的是它们可以读取什么,或者更确切地说,您的应用程序可以读取什么(如果我们在:,您的应用程序可以将例如
作为换行符处理)