我知道我们不应该再使用注册表来存储应用程序数据,但是在更新旧版应用程序(并希望进行最少的更改)时,非管理员可以使用哪些注册表配置单元?
我可以访问所有HKEY_CURRENT_USER
(应用程序当前访问HKEY_LOCAL_MACHINE
)没有管理员权限?
一般来说,非管理员用户对注册表具有以下访问权限:
读/写:
只读:
HKEY_LOCAL_MACHINE
-
HKEY_CLASSES_ROOT
(这只是一个link to HKEY_LOCAL_MACHINE\Software\Classes
)
可以逐个密钥更改其中一些权限,但这种情况极为罕见。您不必担心这一点。
出于您的目的,您的应用程序应该将设置和配置写入HKEY_CURRENT_USER
。规范地点位于以下任意位置
HKEY_CURRENT_USER\Software\YourCompany\YourProduct\
您可能会将全局(对于所有用户)的设置保存在HKEY_LOCAL_MACHINE
。需要这样做的情况非常罕见,您应该避免这样做。问题是任何用户都可以“读取”这些内容,但只有管理员(或者通过扩展,您的设置/安装程序)可以set
them.
其他常见的麻烦来源:您的应用程序不应写入任何内容Program files
or the Windows
目录。如果您需要写入文件,有多种选择;描述所有这些将是一个更长的讨论。所有选项最终都会写入子文件夹或下的另一个文件夹%USERPROFILE%
对于有问题的用户。
最后,您的应用程序应该远离HKEY_CURRENT_CONFIG
。该配置单元保存了 99.9999% 的应用程序不需要查看的硬件配置、服务配置和其他项目(例如,它保存了当前的即插即用设备列表)。如果您需要从那里获得任何信息,大部分信息都可以通过其他地方支持的 API 获得。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)