|
#1
|
|||
|
|||
пути сохранения
собственно вопрос, при сохранении
ts.SaveToFile('C:\Windows\System32\GroupPolicy\hel lo.txt'); сохраняет этот файл сюда "C:\Windows\SysWOW64\GroupPolicy" при попытке сохранить через СейвДиалог1 показывает то что находится в каталоге "C:\Windows\SysWOW64\GroupPolicy" хотя пусть в диалоговом окне указан как "C:\Windows\System32\GroupPolicy\" смотрите скрин программа запущенна от имени администратора через блокнот если сохранить просто файл то сохраняет куда надо, тотал командер также видит все как есть собственно что это такое и как все же сохранить в нужную папку? |
#2
|
||||
|
||||
Цитата:
По идее для 64-битного приложения такого не будет. Есть ли способ "обмануть" винду и заставить-таки записать в папку system32 из 32-битного приложения на 64-битной системе - не знаю. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 27.09.2016 в 21:55. |
#3
|
|||
|
|||
Цитата:
проблема ровно в том что с блокнота и тотал коммандерах32 ты можешь как создать так и записать туда файл, похоже все же дело в самом делфи, а именно баг, даже СейвДиалог при открытии папки показывает другую папку UPD да все такие косяк делфи, собрал прилу х64 все равно тот же косяк Последний раз редактировалось udman, 28.09.2016 в 13:59. |
#4
|
|||
|
|||
Цитата:
UPD может кому пригодится This is because the WOW64 file system redirection, if your 32-bit app that want to gain access to the native system32 directory, you must use the Wow64DisableWow64FsRedirectionfunction or the Sysnative Alias. Wow64DisableWow64FsRedirection Try this sample Код:
{$APPTYPE CONSOLE} uses SysUtils, Windows; Function Wow64DisableWow64FsRedirection(Var Wow64FsEnableRedirection: LongBool): LongBool; StdCall; External 'Kernel32.dll' Name 'Wow64DisableWow64FsRedirection'; Function Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection: LongBool): LongBool; StdCall; External 'Kernel32.dll' Name 'Wow64EnableWow64FsRedirection'; Var Wow64FsEnableRedirection: LongBool; begin try if Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection) then begin if FileExists('c:\windows\system32\alg.exe') then Writeln('fe') else Writeln('fne'); if not Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection) then RaiseLastOSError; end else RaiseLastOSError; except on E:Exception do Writeln(E.Classname, ':', E.Message); end; Writeln('Press Enter to exit'); Readln; end. end. https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx |