Installation 在卸载过程中删除注册表项(安装程序未创建)(Inno安装程序)

Installation 在卸载过程中删除注册表项(安装程序未创建)(Inno安装程序),installation,registry,inno-setup,setup-project,Installation,Registry,Inno Setup,Setup Project,从: 不创建密钥 指定此标志后,如果用户计算机上不存在密钥,安装程序将不会尝试创建密钥或任何值 系统。如果钥匙不存在,则不会显示错误消息 通常,此标志与uninsdeletekey标志结合使用,用于在卸载期间删除密钥,但不创建密钥 在安装过程中 我的程序在“当前用户自动启动”部分下创建注册表值(类型为string),但前提是用户从“设置”屏幕显式执行此操作 我希望卸载程序清理该条目,因此我将以下内容添加到Inno安装项目中: [Registry] Root: HKCU; Subkey: "SOF

从:

不创建密钥

指定此标志后,如果用户计算机上不存在密钥,安装程序将不会尝试创建密钥或任何值 系统。如果钥匙不存在,则不会显示错误消息

通常,此标志与
uninsdeletekey
标志结合使用,用于在卸载期间删除密钥,但不创建密钥 在安装过程中

我的程序在“当前用户自动启动”部分下创建注册表值(类型为
string
),但前提是用户从“设置”屏幕显式执行此操作

我希望卸载程序清理该条目,因此我将以下内容添加到Inno安装项目中:

[Registry]
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "this_is_a_test"; Flags: dontcreatekey uninsdeletevalue
然而,这似乎不起作用。我觉得
dontcreatekey
标志只适用于“键”而不适用于“值”。如果是,我如何才能做到这一点

(1) 假设“键”是“SOFTWARE\Microsoft\Windows\CurrentVersion\Run”(安装前始终存在),而“value”是驻留在该键内的
字符串
类型的条目。

使用或省略
ValueType
参数:

如果指定了
none
(默认设置),则安装程序将创建键,但不会创建值。在这种情况下,将忽略
ValueName
ValueData
参数

但请注意,文档并非完全正确。当与
uninsdeletevalue
标志组合时,
ValueName
不会被忽略

[Registry]
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; \
    ValueType: none; ValueName: "this_is_a_test"; Flags: dontcreatekey uninsdeletevalue