-
DVM © (21.03.11 23:24) [18]
Разумеется, не совсем. Имелось в виду, что разный System32 для 32-х и 64-х битных программ.
-
Ок. спасибо. И как тогда быть?
И как на счет этого? >> правда реальный путь все еще не знаю как получить, зная только редиректорный. 2 DVM может знаете выход?
-
> И как на счет этого? > >> правда реальный путь все еще не знаю как получить, зная > только редиректорный.
А на кой вам нужен реальный, позвольте спросить?
-
:) зачем тут всем нужно знать зачем ? :)))
нужно
-
очередная супергениальная чистилка реестра от "ненужных" ключей ?
-
Удалено модератором Примечание: Обсуждение модерирования
-
> Gu
> 2 DVM может знаете выход?
Выходы то есть, но они, понимаешь ли, сильно зависят от контекста использования. Допустим, если мне нужна 64 бит папка system32, из 32 бит программы ее достать и открыть или найти что то в ней можно, но если у тебя в распоряжении есть путь: c:\windows\system32\bla-bla то никак нельзя определить, в какую из двух папок system32 он должен вести. Проблема.
Когда мне очень было нужно, я все же использовал эти функции, но постарался свести код между их вызовами к минимуму. Долго тестировал и изучал, где могут возникнуть грабли, вроде ПОКА нормально. Но это временное решение.
> Короче дельфевым 32разрядным Api - 64 винда вертит как хочет
Делфи тут ни причем.
> когда же они компилятор заточат под 64
в августе-сентябре этого года.
> QAZ (22.03.11 11:50) [24]
Действительно, на мой взгляд - это единственное где может такое понадобится. Кстати, если это действительно так, то не стоит и забывать о перенаправлении ключей реестра.
-
> Gu
Если тебе очень надо попасть в папку System32 для 64 бит приложений, используй путь: %windir%\Sysnative вместо %windir%\System32.
-
ну конкретно папка меня мало интересует. меня интересует получение рального пути вместо редиректорного (даже если его можно использовать с учетом применения Wow64DisableWow64FsRedirection).
выше писал >> т.е. еще раз: винда говорит, что есть файл c:\windows\system32\alg.exe, и в проводнике его видно по этому пути, дельфи его не находит, т.к. он реально лежит в C:\Windows\winsxs\amd64_microsoft-windows-alg_31bf3856ad364e35_6.1.7600.16385_none_04de43c774cf8fe3\alg.exe - вот как получить этот путь?
еще раз, пример: с использованием редиректа сейчас могу получить "типа настоящий" путь как c:\windows\system32\alg.exe (откликается на поиск и другие операции с использованием функций редиректа). А как реальный путь получить? Если знаю что используется редирект и знаю полное имя и путь, которые мне винда говорит (c:\windows\system32\alg.exe), т.е. нужна какая-нить функция
типа GetRealPath(RedirectPath:string):string;
чтобы
GetRealPath('c:\windows\system32\alg.exe')
выдало
C:\Windows\winsxs\amd64_microsoft-windows-alg_31bf3856ad364e35_6.1.7600.16385_none_04de43c774cf8fe3\alg.exe
Вот это реально сделать?
-
> [28] Gu (23.03.11 10:24) > меня интересует получение рального пути вместо редиректорного
А это не жёсткая ссылка? Для жёсткой все пути равноправны и нет особого "реального".
-
> Gu
> C:\Windows\winsxs\amd64_microsoft-windows-alg_31bf3856ad364e35_6. > 1.7600.16385_none_04de43c774cf8fe3\alg.exe - вот как получить > этот путь?
чем путь c:\windows\system32\alg.exe не устраивает?
-
тем что он не настоящий
-
> Gu (23.03.11 13:44) [31]
C:\Windows\winsxs\amd64_microsoft-windows-alg_31bf3856ad364e35_6. > 1.7600.16385_none_04de43c774cf8fe3\alg.exe
тоже не настоящий, есть еще более настоящий, тебе от этого станет легче?
если по пути файл доступен - значит путь настоящий.
-
> Gu (23.03.11 13:44) [31]
Тебе уже сказали, что в NTFS на один и тот же файл, может быть создано сколько угодно жестких ссылок в разных каталогах и все эти ссылки РАВНОПРАВНЫ, то есть среди них нет главной и второстепенной. Это не как ярлыки Windows.
-
>> тоже не настоящий это как раз настоящий
>>эти ссылки РАВНОПРАВНЫ мне кажется, что это не так. на такие файлы действуют ограничения, для таких файлов не работают или работают некорректно некоторые файловые функции, например SHObjectProperties для (а5 пример для alg.exe) %SystemRoot%\System32\alg.exe не работает, для c:\windows\system32\alg.exe тоже, при включенном редиректе для c:\windows\system32\alg.exe - диалог показывает но свойства файла, такие как размер и др - нет, а если указать полный путь, то работает нормально. где то же в виндах зарыты эти правила редиректа, вот их бы вытащить и функцию написать о которой выше писал в [28].
-
Может быть 32-х битные приложения "не видят" 64-х битных? У 32-х битных приложений них нет выхода в 64-х битное "оружение".
-
Поставь 64-bit Far и посмотри. Думаю, что сразу поймёшь в чём дело. В 64-битых Vista/2008/7 есть довольно много виртуальных фолдеров, которые видны по-разному, в зависимости от того, какой процесс (32 или 64 битный), какие права и т.п.. Windows\system32 один из них. Сравни содержимое этого директория в Far 32-bit и 64-bit. Они разные.
|