Mik*_*e D 5 registry windows-7
我有一个在XP下运行的应用程序(32位c ++),我需要适应在Windows 7和Vista下运行.它需要在几个独立于User的位置存储几十个字节的数据.在XP下,我将数据存储在HKEY_LOCAL_MACHINE\Software下的注册表中.当我在Windows 7上运行应用程序时,注册表项是虚拟化的,每个用户都获得一份单独的数据副本.
非虚拟化注册表似乎是数据的合理位置,但我不知道如何去做.我注意到有很多应用程序实际存储数据; 他们是怎么做的?
我也愿意将数据存储在哪里,是否有一些众所周知的全局存储库呢?我需要一个小文件.
我或多或少地对整个权利/特权业务一无所知,所以任何提示,指针等都非常赞赏.
Windows 7 的设计目标之一是隔离用户数据和应用程序。这是为了提高隐私性、安全性和定制性。事实上,Win 7中的标准用户无法更改其他用户的数据。
存储应用程序数据的标准位置由System.Environment.SpecialFolder枚举返回。请注意,并非所有文件夹都可供所有用户读取或写入。例如,CommonApplicationData 可供所有用户读取,但只能由具有适当策略的用户(例如管理员)写入。
如果您绝对必须拥有在用户之间共享的数据,则管理员或具有权限的人必须将其安装到共享位置。如果用户需要更新此数据,他们应该将其复制到可以写入的位置,例如 ApplicationData,并更新自己的私有副本。其他用户无法更改此私有副本。您不应将数据安装到共享位置,除非您的应用程序无法正常工作。
事实上,在Win7中,您应该将所有应用程序和数据安装到登录用户的应用程序和数据文件夹中,而不是共享位置。如果多个用户安装该应用程序,每个用户都将获得自己的应用程序和数据副本。这几乎总是您想要的。如果多个用户正在运行一个应用程序或游戏,您不希望一个用户改变其他所有人。如果多个用户确实需要相同的更改,请让每个用户在需要时更新其私有副本。如果一个用户的帐户被黑客攻击或变得邪恶,您不希望它破坏其他人的应用程序和数据。
另请注意,在 Win7 中,用户可以远程登录到计算机,因此用户存储特定于计算机的数据(例如屏幕分辨率或 IP 地址)并不是一个好主意。相反,请在每次应用程序运行时检查此项。
| 归档时间: |
|
| 查看次数: |
1443 次 |
| 最近记录: |