写入系统目录中的文件
我一直在试图写入系统目录中的一个文件在我的计算机',但我不能得到它的工作;我会做什么来获得必要的权限?需要而无需手动更改对每一个计算机的权限,以更新SS ...写入系统目录中的文件
var
z: THandle;
...
begin
....
z:=OpenFile('myfile.scr',a,OF_WRITE);
FileWrite(z,buf[16],3124);
FileClose(z);
end;
很可能这是file system redirector的下降。假设你真的在跑步,那么你将拥有足够的权利。但是一个32位进程会看到32位系统文件夹SysWOW64。这可能是你的文件登陆的地方。
如果您确实需要写入64位系统目录,请运行64位进程或写入sysnative alias。
我不太清楚你为什么要使用传统的OpenFile。使用CreateFile是正常的。甚至TFileStream。
我只是将代码注入到资源管理器中,并让它为我做了工作(更好的方法,尽管我的AV检测到它是病毒imao)。 – user0 2013-04-05 21:34:51
你可以添加一个清单给你的应用程序如下所述:
How to add manifest <requestedPrivileges> info into delphi project
这样,在应用程序启动时,Windows UAC将提示进行管理r特权。这篇文章是关于Delphi XE的,但是我已经在Delphi 2005上成功测试了清单。
在开发过程中,一定要以管理员权限启动Delphi IDE。否则,当您尝试从IDE运行/调试程序时,它可能会崩溃。
操作系统不允许以管理员身份登录。这不是德尔福问题。您的应用必须由管理员运行。 – 2013-04-05 18:30:41
我作为管理员运行它,它仍然没有写入系统目录(Windows 8)。而且我已经知道这不是德尔福问题哈哈(抱歉,如果我发布的来源混淆人)。 – user0 2013-04-05 18:31:19
它看起来像我的可疑代码,但问题是操作系统权限,并且您不能在没有管理员权限的情况下设置它们。这里有几十篇关于操作系统权限的文章;在这里搜索“[windows]文件权限”,了解以前的一些问题。 – 2013-04-05 18:35:09