gpt4 book ai didi

windows-7 - Windows 7 - 我可以在哪里以及如何存储机器用户独立数据?

转载 作者:行者123 更新时间:2023-12-04 21:26:58 25 4
gpt4 key购买 nike

我有一个在 XP 下运行的应用程序(32 位 c++),我需要适应它以在 Windows 7 和 Vista 下运行。它需要在独立于用户的某个地方存储几十个字节的数据。在 XP 下,我将数据存储在 HKEY_LOCAL_MACHINE\Software 下的注册表中。当我在 Windows 7 上运行应用程序时,注册表项是虚拟化的,每个用户都会获得一份单独的数据副本。

非虚拟化注册表似乎是数据的合乎逻辑的地方,但我不知道如何去做。我注意到有许多应用程序实际上在那里存储数据。他们是怎么做到的?

我也愿意将数据存储在其他地方,是否有一些众所周知的全局存储库?我只需要一个小文件。

我或多或少对整个权利/特权业务一无所知,因此非常感谢任何提示、指针等。

最佳答案

Windows 7 的设计目标之一是隔离用户数据和应用程序。这是为了改善隐私、安全和定制。事实上,Win 7 中的标准用户无法更改其他用户的数据。

System.Environment.SpecialFolder 返回存储应用程序数据的标准位置。枚举。请注意,并非所有文件夹都可供所有用户读取或写入。例如,CommonApplicationData 可供所有用户读取,但只能由具有适当策略的用户(如管理员)写入。

如果您绝对必须拥有在用户之间共享的数据,管理员或有权限的人必须将其安装到共享位置。如果用户需要更新这些数据,他们应该将其复制到他们可以写入的位置,例如 ApplicationData,并更新他们自己的私有(private)副本。其他用户无法更改此私有(private)副本。除非您的应用程序无法正常工作,否则您不应将数据安装到共享位置。

事实上,在 Win7 中,您应该将所有应用程序和数据安装到登录用户的应用程序和数据文件夹,而不是共享位置。如果多个用户安装应用程序,每个用户都将获得自己的应用程序和数据副本。这几乎总是你想要的。如果多个用户正在运行一个应用程序或游戏,您不希望一个用户改变其他所有人。如果多个用户确实需要相同的更改,让每个用户在需要时更新他们的私有(private)副本。如果某个用户的帐户被黑或变坏,您不希望它破坏其他所有人的应用程序和数据。

另请注意,在 Win7 中,用户可以远程登录计算机,因此按用户存储特定于计算机的数据(如屏幕分辨率或 IP 地址)不是一个好主意。相反,每次你的应用程序运行时都要检查这个。

关于windows-7 - Windows 7 - 我可以在哪里以及如何存储机器用户独立数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1806356/

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