[英]Where should global Application Settings be stored on Windows 7?
我正在努力使我的产品在Windows 7上无缝工作。问题在于, 所有用户都应该能够更改一小组全局(非用户特定的)应用程序设置。
在以前的版本中,我为此目的使用了HKLM\\Software\\__Company__\\__Product__
。 这允许高级用户和管理员修改注册表项,一切正常。 现在,Windows Vista和Windows 7具有此UAC功能,默认情况下,即使是管理员也无法访问密钥,无需提升即可进行写入。
当然,一个愚蠢的解决方案意味着将requireAdministrator
选项添加到应用程序清单中。 但这实际上是不专业的,因为产品本身与管理相关的任务非常远。 所以我需要留在asInvoker
。
另一种解决方案可能意味着在需要对注册表项进行写访问时的程序性提升 。 更不用说我不知道如何实现它的事实,它也很尴尬。 它干扰了正常的用户体验,以至于我很难将其视为一种选择。
我所知道的应该是相对容易实现的是在安装期间添加对指定注册表项的写入权限。 我为此创建了一个单独的问题 。 这也非常类似于访问用于存储设置的共享文件。
我的感觉是必须有一种方法来实现我所需要的,以一种安全,直接和与所有操作系统兼容的方式。 有任何想法吗?
你必须在注册表中吗? 如果没有,请将其放入一个简单的文件中,每个人都可写。 写入HKLM需要额外的特权,这是有充分理由的。
我是新来的(否则我会留下评论)而且我不是Windows大师,但......
imho的前提是错误的:
如果非提升用户无法修改所有用户读取的注册表项或目录(例如默认情况下为Users \\ Public),则有一个原因
我认为允许任何用户修改一小组全局应用程序设置可能会破坏其他用户的体验,而这些用户并不期望他们的设置被修改
另一方面,我不知道你的用例......
你能说明为什么所有用户都应该能够修改这些设置吗? 如果确实所有用户都必须能够这样做...为什么你不能让这些设置特定于用户?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.