我一直在試圖寫入系統目錄中的一個文件在我的計算機',但我不能得到它的工作;我會做什麼來獲得必要的權限?需要而無需手動更改對每一個計算機的權限,以更新SS ...寫入系統目錄中的文件
var
z: THandle;
...
begin
....
z:=OpenFile('myfile.scr',a,OF_WRITE);
FileWrite(z,buf[16],3124);
FileClose(z);
end;
我一直在試圖寫入系統目錄中的一個文件在我的計算機',但我不能得到它的工作;我會做什麼來獲得必要的權限?需要而無需手動更改對每一個計算機的權限,以更新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