我一直在尝试写入我计算机系统目录中的文件'但是我无法让它工作;我该怎么做以获得必要的权限?我需要更新SS而不必手动更改每台计算机上的权限...
var
z: THandle;
...
begin
....
z:=OpenFile('myfile.scr',a,OF_WRITE);
FileWrite(z,buf[16],3124);
FileClose(z);
end;
答案 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运行/调试程序时,它可能会崩溃。