registry - 使用 NSIS 在注册表中搜索给定条目

标签 registry nsis

基本上,我的应用程序的 NSIS 在名为 SOFTWARE\APPLICATION_NAME VERSION_NUMBER 的注册表项中设置了一个名为“path”的注册表值,该值表示应用程序当前的安装位置。我现在尝试介绍检查是否安装了应用程序的先前版本以及如果安装了则提供使用先前设置的功能。如果安装了多个版本,用户将能够选择他想要从中获取设置的版本。我遇到的问题是在注册表中搜索以前安装的版本。当我包含 VERSION_NUMBER 时,可以找到路径的键会因每个版本而变化,因此不存在“一成不变”的搜索查询。

因此,例如,如果我从一开始就使用没有版本的 SOFTWARE\APPLICATION_NAME 作为设置路径信息的位置,这将很容易,因为我只需检查该注册表值是否存在即可。理想的解决方案是能够使用通配符进行搜索并检索所有匹配的路径(例如 SOFTWARE\APPLICATION_NAME*)。我确实可以从现在开始停止插入“VERSION_NUMBER”,但这不允许用户将当前配置保留在下一个版本上,而是保留在下一个版本之后的版本上(也就是说,如果他们首先从最新版本进行更新) )。

我希望我的问题很清楚。如果有什么需要澄清的地方,请告诉我。

最佳答案

使用EnumRegKey以及一些基本的字符串处理/比较...

关于registry - 使用 NSIS 在注册表中搜索给定条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936054/

相关文章:

c++ - Windows服务安装返回错误1053

powershell - 通过NSIS静默运行Powershell

nsis - 使用电子生成器添加 NSIS 脚本以在安装期间运行 DPInst.exe

c# - TFS API 是否需要 Visual Studio?

c# - RegistryKey.CreateSubKey 不适用于 Azure 托管环境

c# - 在 C# 中为所有用户设置注册表项

c++ - 读取和写入注册表项。 C++ MFC MBCS。

vb6 - 在无法重新编译的情况下让 VB6 应用程序在 Windows 7 中运行

string - 如何在 NSIS 中连接 2 个字符串

asp.net - 如何使用 NSIS 创建 ASP.net 网站的安装程序