-1

我有一个 C++ 程序,它通过 OBDC 系统 DSN 连接连接到 Access 数据库。该 DSN 是 ProgramData 文件夹中 MDB 的路径。当用户 A 运行应用程序时,它会将该 MDB 文件复制到他们的 AppData\Local 文件夹,并且应用程序对 MDB 所做的任何更新都会复制到他们的 AppData 文件夹中的那个。这不好,因为如果用户 B 运行应用程序,我希望他们看到用户 A 对 MDB 所做的更改。

1) 有没有办法强制它不将 MDB 复制到他们的 AppData 文件夹,而只使用 ProgramData 中的那个?

2)我这样做正确吗?我是否应该将 MDB 放在 ProgramData 以外的其他位置,以便正确共享它?

3) 我是否需要让我的应用程序在启动时比较 MDB 的时间戳?在启动时我可以让它从 ProgramData 中拉出来,当它关闭时我可以让它写回 ProgramData?这似乎是一个 hack,我什至不知道权限是否会成为问题

4

2 回答 2

0

这篇文章与 OP 的评论和 Gustav 之前的回答有关:

使用指向 C:\Users\Public 的共享文件夹 %Public%(的子文件夹)。

我也不是 Inno 设置专家,但我认为不存在“C:\Users\Public”的预定义常量。但是,如果它只是你想要的一个常数,你总是可以这样做。

在脚本的最顶部使用#define宏创建一个常量,例如。

#define sf "C:\Users\Public"

你可以在你的脚本中任何你想要的地方使用它。前任:

[Files]
Source: "app.exe"; DestDir: "{#sf}\MyApp\";
于 2017-04-10T12:38:14.350 回答
0

%Public%使用指向C:\Users\Public的共享文件夹(的子文件夹)。

于 2017-04-09T15:42:39.500 回答