Главная страница
    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.042 c
6-1281946428
PonosetcDM
2010-08-16 12:13
2017.01.15
Indy в Internet


15-1449479729
Limpo
2015-12-07 12:15
2017.01.15
Адрес константы внутри процедуры


1-1346053086
mefodiy
2012-08-27 11:38
2017.01.15
Настройка Delphi 2010


15-1448881398
Анна
2015-11-30 14:03
2017.01.15
имеет ли право начальство поставить программу считывания информ


2-1430858757
Zheksonz
2015-05-05 23:45
2017.01.15
Почему некоторые контролы не отображаются?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский