基本上,我的应用程序的 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/