inne setup 打包 读取注册表求助
前言:由于c4d 的 2025 软件 安装后,有每个人的电脑中他的注册表值 都不同,所以安装包无法读取注册表值 ,所以就想用个变量来查找他的软件 目录读到软件 目录后再读取他的 InstallLocation 数值 =插件 安装目录
条件
1.用inno setup 写一段 代码通过 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall路径下方 路径查找Maxon Cinema 4D 2025 的注册表 数据
2.其中 2025版本中的注册表数据 DisplayVersion=25 后面的小数点忽略(比如小版本25.02 只默认读取他为25 版本)
3.如果找到 DisplayVersion=25 (版本)则查找 这个注册表下方的InstallLocation 数值 =安装目录
4.附注册表示意结构 图
哪位大神帮我看下
楼下是我百度ai 自动生成的我左改右改都读取不了注册表的变量
var
RegPath: string;
InstallLocationSubkey: string;
InstallLocationKey: string;
DisplayVersionValue: string;
function GetDefaultInstallDir(Param: string): string;
begin
// 设置要查询的注册表路径
RegPath := 'HKLM64,SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
InstallLocationSubkey:= 'DisplayVersion';
// 查询注册表
if RegQueryStringValue(HKLM64, RegPath, InstallLocationKey, DisplayVersionValue) then
begin
// 如果找到了 DisplayVersion 值,使用它来构造默认的安装路径
Result := 'InstallLocationSubkey ' + DisplayVersionValue;
end
else
begin
// 如果没有找到,则使用默认路径
Result := '{pf}\My Program';
end;
end;
问了GPT 好像不能直接查询,你可以 把你这个示例目录字符给 GPT,让GPT帮你构建一个 模糊 查询比对的的脚本代码 本帖最后由 Arcanist 于 2024-11-18 22:38 编辑
对 Inno 不熟,按 InstallShield 的经验,应该就是要遍历 Uninstall 下面的注册表键了,再判断哪个键匹配你的规则。
在CSDN看到篇文章,可能有帮助,你可以参考一下:inno setup 遍历注册表 https://blog.csdn.net/dongsongz/article/details/116329544
页:
[1]