Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2014.03.30;
Скачать: [xml.tar.bz2];

Вниз

FileExists - дает диалог в XP   Найти похожие ветки 

 
z2000   (2010-03-19 10:15) [0]

Заметил такую особенность функция FileExists выводит диалоговое окно в win XP когда происходит следующее:
работали с CD ромом, вынули диск и вот если функция после этого проверяет наличие файла на отсутствующем в приводе
диске CD она дает диалоговое окно об отсутствие файла.

Понятно что оно реализовано в недрах WIN API, но все же
как от него избавиться, может кто с таким сталкивался,
эта штука в определеных моментах совсем ненужная и даже вредная...


 
evvcom ©   (2010-03-19 10:33) [1]

Напиши мелким и мягким


 
{RASkov} ©   (2010-03-19 10:34) [2]

> [0] z2000   (19.03.10 10:15)

Приведи пример кода, который выполняет описанное в [0]


 
Anatoly Podgoretsky ©   (2010-03-19 10:51) [3]

SetErrorMode


 
z2000   (2010-03-19 12:36) [4]

Anatoly Podgoretsky   Спасибо!


 
DVM ©   (2010-03-19 13:16) [5]


function FileExists2(const FileName: string): Boolean;

 function ExistsLockedOrShared(const Filename: string): Boolean;
 var
   FindData: TWin32FindData;
   LHandle: THandle;
 begin
   LHandle := FindFirstFile(PChar(Filename), FindData);
   if LHandle <> INVALID_HANDLE_VALUE then
   begin
     Windows.FindClose(LHandle);
     Result := FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0;
   end
   else
     Result := False;
 end;

var
 Code: Integer;
 LastError: Cardinal;
 OldMode: Cardinal;
begin
 OldMode := SetErrorMode(SEM_FAILCRITICALERRORS);
 Code := Integer(GetFileAttributes(PChar(FileName)));
 if Code <> -1 then
   Result := (FILE_ATTRIBUTE_DIRECTORY and Code = 0)
 else
 begin
   LastError := GetLastError;
   Result := (LastError <> ERROR_FILE_NOT_FOUND) and
     (LastError <> ERROR_PATH_NOT_FOUND) and
     (LastError <> ERROR_INVALID_NAME) and ExistsLockedOrShared(Filename);
 end;
 SetErrorMode(OldMode);
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2014.03.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.002 c
2-1371650235
bergenion
2013-06-19 17:57
2014.03.30
Помогите создать класс


2-1370712411
oliksin
2013-06-08 21:26
2014.03.30
Почему программа не работает? Не могу найти ошибку.


6-1272206861
tippa
2010-04-25 18:47
2014.03.30
много подключений с одного сокета


3-1296464216
12
2011-01-31 11:56
2014.03.30
Научите в ODAC обрабатывать ошибки.


15-1381168512
Noso
2013-10-07 21:55
2014.03.30
Возвращение набора данных из Ms sql





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