Форум: "Начинающим";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
ВнизНе находится существующий файл Найти похожие ветки
← →
Олег Г. (2015-04-19 11:07) [0]Всем привет. Странная проблема. В Windows 7 есть программа - Записки. Она расположена в
C:\Windows\System32\StikyNot.exe. Ни FileExists ни GetFileAttributes не могут найти этот файл. Почему?if FileExists("C:\Windows\System32\StikyNot.exe") then
ShowMessage("файл существует")
else
ShowMessage("файл не найден");
if GetFileAttributes("C:\Windows\System32\StikyNot.exe") <> INVALID_FILE_ATTRIBUTES then
ShowMessage("Файл существует")
else
ShowMessage(SysErrorMessage(GetLastError));
← →
junglecat © (2015-04-19 11:25) [1]C:\Windows\SysWOW64\StikyNot.exe ?
← →
Олег Г. (2015-04-19 11:27) [2]
> junglecat © (19.04.15 11:25) [1]
>
> C:\Windows\SysWOW64\StikyNot.exe ?
Так тоже не находит.
← →
Олег Г. (2015-04-19 11:30) [3]Попробовал скомпилировать 64-битную программу и вызвал обе функции с параметром "C:\Windows\System32\StikyNot.exe" - результат тот же.
← →
Олег Г. (2015-04-19 11:41) [4]Проверил через FindFirstFile - находит:
hSearch: THandle;
FileData: WIn32_FIND_DATAW;
begin
hSearch := FindFirstFileW("C:\Windows\System32\StikyNot.exe", FileData);
if hSearch <> INVALID_HANDLE_VALUE then
begin
ShowMessage(FileData.cFileName);
Winapi.Windows.FindClose(hSearch);
end;
end;
← →
Олег Г. (2015-04-19 13:17) [5]Проблема была в том, что в папке SysWOW64 нет файла StikyNot.exe, соответственно, если вызов FileExists/GetFileAttributes/FindFirstFile из
32-битной программы, то путь к этому файлу найти не удается. Однако, в 64-битной программе все ок (в [4] вызов FindFirstFileW был сделан из 64-битной программы, поэтому файл нашелся).
← →
DVM © (2015-04-19 19:58) [6]
> Олег Г. (19.04.15 11:41) [4]
И для 64 бит и для 32 бит программ доступ к папке C:\Windows\System32\ (той что видят 64 бит программы) может быть получен по пути C:\Windows\Sysnative\
← →
Kilkennycat © (2015-04-19 22:01) [7]а их не проще искать по типу %альяс_системной_папки% ?
← →
Rouse_ © (2015-04-21 17:42) [8]Вообще достаточно сказать Wow64DisableWow64FsRedirection, но есть нюанс, который стоит учесть: http://blog.not-a-kernel-guy.com/2009/04/03/482
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.056 c