写入系统目录中的文件

时间:2013-04-05 18:26:57

标签: file delphi permissions

我一直在尝试写入我计算机系统目录中的文件'但是我无法让它工作;我该怎么做以获得必要的权限?我需要更新SS而不必手动更改每台计算机上的权限...

    var
    z: THandle;
...
    begin
    ....
    z:=OpenFile('myfile.scr',a,OF_WRITE);
    FileWrite(z,buf[16],3124);
    FileClose(z);
    end;

2 个答案:

答案 0 :(得分:2)

最有可能是file system redirector。假设您确实正在升级,那么您将拥有足够的权利。但是32位进程会看到32位系统文件夹SysWOW64。这可能是您的文件登陆的地方。

如果确实需要写入64位系统目录,请运行64位进程,或写入sysnative alias

我不太清楚为什么要使用传统的OpenFile。使用CreateFile是正常的。甚至TFileStream。

答案 1 :(得分:1)

您可以按照此处的说明向应用程序添加清单:

How to add manifest <requestedPrivileges> info into delphi project

这样,在应用程序启动时,Windows UAC将提示管理员权限。这篇文章是关于Delphi XE的,但我已经在Delphi 2005上成功测试了清单。

在开发过程中,一定要启动具有管理员权限的Delphi IDE。否则,当您尝试从IDE运行/调试程序时,它可能会崩溃。