Delphi Работа с устройства в Windows - всичко за ИТ и програмиране
Написано на 26 януари 2009 г. Публикувано в Delphi
СЪДЪРЖАНИЕ
Проследяване на промените в хардуерната конфигурация
Когато има някаква промяна в хардуерния профил, съобщение WM_DEVICECHANGE се изпраща до главния прозорец на приложението. Когато това съобщение бъде получено, WParam съдържа код на събитие. Интересуват ни само три кода: DBT_DEVICEARRIVAL, DBT_DEVICEREMOVECOMPLETE и DBT_DEVNODES_CHANGED.
Събитието DBT_DEVNODES_CHANGED показва, че е имало промяна в хардуерния профил. LParam в този случай е равен на нула. Събитията DBT_DEVICEARRIVAL и DBT_DEVICEREMOVECOMPLETE са идентични и се различават по това, че първото събитие означава прикачено устройство и второ отделяне на устройство. LParam е ненулев за тези събития и сочи към структура DEV_BROADCAST_HDR. Допълнителните полета могат да варират в зависимост от полето dbch_devicetype в тази структура. Например, ако dbch_devicetype е DBT_DEVTYP_VOLUME, тогава LParam в този случай сочи към структурата DEV_BROADCAST_VOLUME и полето dbcv_unitmask в тази структура съдържа битовата маска на новите дискове. (бит нула означава буква A, втора буква B, трета буква C и т.н.).