Delphi-使用非管理员应用程序写入文件适用于管理员用户,但不适用于非管理员用户

Delphi-使用非管理员应用程序写入文件适用于管理员用户,但不适用于非管理员用户,delphi,permissions,admin,rights,Delphi,Permissions,Admin,Rights,我正试图让我的应用程序写入一个文本文件。当程序在windows管理员帐户上运行时,它可以工作,但在使用常规windows帐户运行时则不能工作。应用程序并非两次都以管理员身份运行。运行程序的帐户是否会影响写入权限?有办法解决这个问题吗 目录和文件都具有任何用户的写入权限 我正在使用系统中的Append和WriteLn过程 该文件位于ProgramFiles目录中,尽管我们将对自己目录的访问权限更改为普通用户可写 编辑: 这是密码 var f: TextFile; AssignFile(f, sF

我正试图让我的应用程序写入一个文本文件。当程序在windows管理员帐户上运行时,它可以工作,但在使用常规windows帐户运行时则不能工作。应用程序并非两次都以管理员身份运行。运行程序的帐户是否会影响写入权限?有办法解决这个问题吗

目录和文件都具有任何用户的写入权限

我正在使用系统中的Append和WriteLn过程

该文件位于ProgramFiles目录中,尽管我们将对自己目录的访问权限更改为普通用户可写

编辑: 这是密码

var
f: TextFile;

AssignFile(f, sFile);

if not FileExists(sfile) then
begin
    Rewrite(f);
end
else
begin
    //Will append to the file
    Append(f);
end;

Writeln(f, sInfo);

Flush(f);
CloseFile(f);

是的,程序运行的帐户决定了它可以写入和不能写入的位置

非管理员用户无法写入程序文件,以及许多其他地方


您需要进行一些研究,以找出非管理员用户可以写入的位置,但首先是:System.IOUtils.TPath.GetHomePath

显示打开文件的代码。您可以考虑使用流和流写器来代替旧式的普通Pascal例程,如Wrneln。但同样:向我们展示打开文件的代码和尝试写入文件的代码。显示一个简单的代码。@RudyVelthuis我添加了代码。您添加了一些代码,但没有添加代码。那是不可编译的。什么是sInfo?检查有效权限。“不工作”不是一个有用的问题描述。它不工作的确切症状是什么?