Функция SetErrorMode

Declare Function SetErrorMode Lib "kernel32" _
   (ByVal uMode As Long) As Long

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

Возвращаемое значение

Возвращаемое значение получает предыдущее состояние флага обработки ошибки

Параметры

uMode
Флаг обработки ошибок. Может принимать одно или несколько следующих значений
0Система выводит собственные окна об ошибках
Const SEM_FAILCRITICALERRORS = &H1Система не выводит свое окно об ошибке. Вместо этого система посылавет ошибку в вызывающее приложение
Const SEM_NOALIGNMENTFAULTEXCEPT = &H4The system automatically fixes memory alignment faults and makes them invisible to the application. It does this for the calling process and any descendant processes. This feature is only supported by certain processor architectures. For more information, see the Remarks section. After this value is set for a process, subsequent attempts to clear the value are ignored.
Const SEM_NOGPFAULTERRORBOX = &H2The system does not display the general-protection-fault message box. This flag should only be set by debugging applications that handle general protection (GP) faults themselves with an exception handler.
Const SEM_NOOPENFILEERRORBOX = &H8000&The system does not display a message box when it fails to find a file. Instead, the error is returned to the calling process.

Пример

' Создаем функцию проверки наличия флоппи-диска в дисководе

Private Function IsFloppyReady(sDrive As String) As Boolean
   On Local Error Resume Next
   Dim oldErrMode  As Long
  ' Подавляем вывод системного сообщения об ошибки (нет флоппи в дисководе)
   oldErrMode = SetErrorMode(SEM_FAILCRITICALERRORS)
   
  ' Пытаемя обратиться к дисководу при помощи Dir
   IsFloppyReady = Dir(sDrive) > ""

   ' Возвращаем все как было
   Call SetErrorMode(oldErrMode)
   Call SetErrorMode(0)
   
   On Local Error GoTo 0
End Function

' Вызываем функцию для проверки диска
Dim success As Boolean

success = IsFloppyReady("A:")

Смотри также

GetErrorMode

Категория

Ошибки