Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.053 c
2-1419002742
Вован Петрович
2014-12-19 18:25
2017.01.15
Локализация ПО


3-1308531630
Дмитрий С
2011-06-20 05:00
2017.01.15
Mysql, большой blob. как лучше?


15-1454623843
KilkennyCat
2016-02-05 01:10
2017.01.15
Задачка про сеть.


2-1424539948
Fox
2015-02-21 20:32
2017.01.15
Интернет ТВ


15-1457536558
DVM
2016-03-09 18:15
2017.01.15
Как думаете, это ошибка в TPointerStream в VCL?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский