gpt4 book ai didi

windows-7 - Windows 7 提升的注册表访问

转载 作者:行者123 更新时间:2023-12-03 08:07:00 26 4
gpt4 key购买 nike

我正在为我们的应用程序开发一个安装程序。安装程序对 HKEY_CURRENT_USER\Software\Company\AppName 注册表项进行一些更改,然后应用程序会在首次运行时查找该注册表项。然后,应用程序会根据它找到的注册表项执行不同的操作。

这很好用,直到您尝试在 Windows 7(也许还有 Vista,我还没有测试过)上以用户帐户(即非管理员)的身份安装该应用程序。

当用户尝试安装应用程序时,Windows 会提升为管理员帐户的凭据。这意味着对注册表中 HKCU 的任何更改都是针对管理员的注册表,而不是启动用户的注册表。因此,当应用程序在用户帐户下首次启动时, key 对应用程序不可见。

我们不能是安装程序需要与其安装的应用程序通信的唯一人。没有办法可靠地使用注册表来执行此操作吗?

我们不能依赖用户在安装后启动应用程序,因此将信息作为命令行参数传递不是一个可行的解决方案。我能看到的唯一方法是让安装程序以原始用户身份调用实用程序,该实用程序本身获取或设置注册表项;这似乎是一个必须跳过的愚蠢的圈套。

编辑:应用程序需要在使用后删除 key ,所以我不能只将它们放在 HKEY_LOCAL_MACHINE 中。

最佳答案

对于您想要的,有 2 种推荐的方法:

  1. 使用每用户安装不需要管理员特权。您将能够使用HKEY_CURRENT_USER,但您的产品并非为所有用户安装。

  2. 使用需要管理员权限的每台机器安装。在这种情况下,您需要重新设计您的应用程序,以便它从配置文件中读取其设置。 HKEY_CURRENT_USER 应仅在保存用户特定设置时使用,而不应用于全局应用程序设置。

基本上,如果您的应用程序是每台机器,它应该使用 HKEY_LOCAL_MACHINE 或配置文件。如果是每个用户,您可以使用 HKEY_CURRENT_USER。任何其他组合都有局限性,不会按您需要的方式工作。

关于windows-7 - Windows 7 提升的注册表访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4396296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com