您应该使用支持有效更新的某种格式的文件。在许多情况下,INI格式已经足够好了,即使纯文本文件可能与您正确管理“随机”更新一样长。文件格式无关紧要,取决于您。即使是Jet 4.0 MDB,如果您拥有大量数据,但是没有理由为此部署一些特定的第三方嵌入式DBMS引擎,那么它也是有意义的。 Jet 4.0和ADO都在Windows中发布,因此不需要部署任何东西,而与SQLite类似。
诀窍是把它放在所有用户都可以更新的地方。
最好的答案是为您的安装运行高架下的ProgramData
特殊的文件夹创建一个应用程序,唯一的文件夹,并设置此安全完全控制或东西少了几分所有登录的用户(Everyone
组适用于本这几天因为它不包括Guest
)。
您可以使用壳牌平API调用或壳牌自动化对象查找ProgramData
(ssfCOMMONAPPDATA
又名CSIDL_COMMON_APPDATA
甚至较新的FOLDERID_ProgramData
与新外壳调用)。
为此避免使用环境变量和硬编码的名称字符串,这是不可靠的。可以更改环境变量,并可以对名称字符串进行本地化或从不同版本的Windows进行更改。
如果您的安装程序不够智能来处理此问题,您还可以将其作为程序的一部分第一次运行操作并且它甚至不需要提升。创建用户在创建的子文件夹上拥有所有者访问权限,因此有权扩大对所有用户的访问权限。
正常情况下,创建的文件夹路径的唯一部分使用公司名称和产品名称。通常,您的代码会从您可以通过VB6 App
对象获取的值中获取这些值。
有关VB6代码示例,请参见[VB6] ProgramData for common files。
一个轻量级*数据库*如SQLite/SQL Server Compact –
一个新的c#平台的好主意。但是我们的目标是为目前的vb6平台“尽可能少的工作”。我对添加一个全新的主要组件(比如SQL数据库)有点犹豫。 – Oystein
大多数解决方案将在VB6与现代NET解决方案中大不相同。 – Plutonix