Показать сообщение отдельно
  #7  
Старый 03.02.2015, 23:48
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Проверил, у меня ваш вариант стабильно 1 возвращает, независимо от занятости файла, хотя должен 0.
А вот такой вот вариант, работает, но с небольшой паузой, что мне не нравится.
Код:
var
  Handle: THandle;
  ErrCode: DWORD;
begin
  Handle := CreateFile(PChar('\\server\c$\Documents and Settings\Administrator\My Documents\Tel.docx'),
    GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
  if Handle = INVALID_HANDLE_VALUE
  then begin
       ErrCode := GetLastError;
       if ErrCode = ERROR_SHARING_VIOLATION
       then ShowMessage('The process cannot access the file because it is being used by another process.')
       else ShowMessage(SysErrorMessage(ErrCode));
       end
  else CloseHandle(Handle);
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием