【发布时间】:2016-09-13 13:37:24
【问题描述】:
我通常使用保存在应用程序自己文件夹中的 INI 文件来编写我的 Delphi 应用程序:
ConfigFile:= ChangeFileExt(ParamStr(0), '.ini');
IniFile:= TIniFile.Create(ConfigFile);
try
with IniFile do
begin
// etc
但是,我正在编写一个特定的应用程序,我想使用设置向导 (Inno),并让用户有机会在 Program Files (x86)\MyProg 中安装该应用程序。
对我来说新的是,Windows 不会将 INI 文件保存在安装目录中,而是“其他地方”。
通过控制面板卸载应用程序会成功删除 Program Files (x86) 文件夹(包括文件夹)中的所有项目,但是 - 与许多程序一样 - 如果重新安装,所有配置设置都会恢复.所以它们必须存储在控制面板 |卸载不会删除。
所以我的问题是在哪里?
谢谢, 约翰。
【问题讨论】:
-
您从应用程序写入 Program Files 违反了 Windows 准则。自 Vista 发布以来,这已被禁止(实际上是 XP,但直到 Vista 才强制执行)。对程序文件的写入被虚拟化到不同的文件夹。即使您选择使用已有 15 年历史的开发工具,您也需要调整您的软件以跟上现代版本的操作系统。
-
停止查找文件并了解 11 年前在 Vista 中引入的更改。然后添加应用清单,停止虚拟化,并将文件存储在用户配置文件下。
-
How to make Delphi programs Vista-aware(正如大卫所说的已有十多年的历史)应该会有所帮助。
-
嗨,John,我建议您了解如何为您的配置文件明确指定一个现代位置,而不是像您刚才所做的那样将它扔到 UAC 文件夹虚拟存储中。