![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сообщение WM_DeviceChange
eh © (2016-04-06 17:13:00)Здравствуйте!
В программе ловлю сообщение WM_DeviceChange.
procedure WMDeviceChange(var Msg: TMessage); message WM_DeviceChange;
...
procedure TFSHook.WMDeviceChange(var Msg: TMessage);
begin
case Msg.wParam of
DBT_DEVICEARRIVAL: begin
if PDEV_BROADCAST_HDR(Msg.LParam)^.dbch_devicetype = DBT_DEVTYP_VOLUME then
begin
RegisterDN(DWORDtoDiskNames(PDEV_BROADCAST_VOLUME(Msg.LParam)^.dbcv_unitmask));
ShowMessage('Вставлен диск: ' + DWORDtoDiskNames(PDEV_BROADCAST_VOLUME(Msg.LParam)^.dbcv_unitmask) + ':');
end;
end;
DBT_DEVICEQUERYREMOVE: begin
if PDEV_BROADCAST_HDR(Msg.LParam)^.dbch_devicetype = DBT_DEVTYP_HANDLE then
ShowMessage('Запрс на извлечение: ' + IntToStr(PDEV_BROADCAST_HANDLE(Msg.LParam)^.dbch_handle));//???
CloseHandle(FDirHandle);
end;
...
end;
end;
При подключении и запросе на извлечение флэшки необходимо определить букву диска. С подключением всё хорошо, а вот с запросом на извлечение не соображу как это сделать.
Подскажите, пожалуйста.
eh (2016-04-07 11:01:00) [1]Rouse_, спасибо!
Rouse_ (2016-04-06 18:49:00) [2]Перечитать список устройств - сравнить со списком существующих в кэше