在Windows上的用户之间共享读/写应用程序数据(在磁盘上)

时间:2011-10-08 21:28:44

标签: windows multi-user

我正在将游戏移植到Windows,并想知道如何存储高分数据,以便同一系统上的所有用户都可以共享数据。理想情况下,数据不应由用户自己编写,只能由拥有数据的应用程序(在本例中为游戏)编写。除了纯粹的技术细节,我也想知道最佳实践。

在Unix上,这可以通过在可执行文件上设置set-UID位来实现,并让可执行文件和共享文件属于同一系统用户(在我的情况下是游戏)。还有一种最佳做法是将这些文件放在/ var / lib / games中。

1 个答案:

答案 0 :(得分:0)

首先,你做不到的事情:

  1. 您不能让某些可执行文件更改某些值,但会阻止用户运行它。
  2. 您不能在特定帐户下运行某些可执行文件,除非您使用某种加载程序(另一种可执行文件)来确保这一点。
  3. 您不能使用注册表来存储共享数据,除非您的用户以管理员身份运行(这不应该是一个选项)。
  4. 现在,您可以做什么:

    1. 使用数据库......
    2. 使用ProgramData文件夹(XP上的“所有用户”)。
    3. 使用一些加载程序让您的应用程序在同一个用户下运行,这会打开该用户的注册表和AppData文件夹(不好的主意 - 只是提到技术上可行)。
    4. 如果#1不可能,我会选择#2。

      关于这个主题的好读物:Where Should I Store my Data and Configuration Files if I Target Multiple OS Versions?