【发布时间】:2014-11-12 07:51:49
【问题描述】:
我在 windows 目录的 win.ini 文件中放置了一个自定义条目,在自定义 [Login] 部分下称为 LoginCount,并在每次加载主视图时递增它。在 Form Create 事件中,我访问 win.ini 并检查它的值,如果它达到 1000,我会显示一条消息。但是发生了一件非常奇怪的事情。达到 1000 后,我手动将其值设置回 0。但它仍然显示 1000。我检查了路径,以防应用程序引用系统中某处的其他 win.ini 文件,但它是 C:\Windows\win.ini .代码如下:
procedure TfMain.FormCreate(Sender: TObject);
var
winIni: TIniFile;
windir_buf: array [0 .. 144] of Char;
WINDIR: string;
loginCount: integer;
begin
GetWindowsDirectory(windir_buf, sizeof(windir_buf));
WINDIR := StrPas(windir_buf) + '\';
ShowMessage(WINDIR+'win.ini');//Shows C:\Windows\win.ini
winIni := TIniFile.Create(WINDIR + 'Win.ini');
loginCount := winIni.ReadInteger('Login', 'LoginCount', 1);
ShowMessage(IntToStr(loginCount));//Shows 1000 although it's 0 in the actual file.
end;
知道为什么吗?
【问题讨论】:
-
除了问题,你为什么要用
win.ini文件?普通用户不应该对 windows 目录有写权限。 -
Windows 3.1 结束了。是时候继续前进了。 20 年是时候继续前进了。
-
@SirRufo,你知道,这是一个由其他人编写的非常古老的应用程序。现在我需要解决那里的问题。我不想费心写新代码。