Здравствуйте,
Для обнаружения устройств всегда использовал такой код:
procedure TMainForm.WMDEVICECHANGE(var Msg: TWMDeviceChange);
var
lpdb : PDevBroadcastHdr;
lpdbpr: PDevBroadCastPort;
S: string;
begin
lpdb := PDevBroadcastHdr(Msg.dwData);
case Msg.Event of
DBT_DEVICEARRIVAL:
begin
if lpdb^.dbch_devicetype = DBT_DEVTYP_PORT then begin
lpdbpr:= PDevBroadCastPort(Msg.dwData);
S := StrPas(@lpdbpr.dbcp_name);
end;
end;
DBT_DEVICEREMOVECOMPLETE:
begin
if lpdb^.dbch_devicetype = DBT_DEVTYP_PORT then begin
lpdbpr:= PDevBroadCastPort(Msg.dwData);
S := StrPas(@lpdbpr.dbcp_name);
end;
end;
end;
end;
Это же самое событие, как я понимаю, должно приходить при подкл/откл флешки.
Попробывал. Msg.Event = 7 как при подключении так и при отключении флешки.
Вопросы: Что значить эта константа(доки
)? Почему не приходит нужное событие?