Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
ВнизВключение/выключение устройства Найти похожие ветки
← →
GEN++ © (2005-07-12 21:04) [0]При этих ситуациях система генерит сообщеение VM_DEVICECHANGE
(под Win 98 - 4 раза под XP - 3 раза)
В справке указано, что парамеры передают тип события, но
приводятся они только в символьном виде)
У меня проблема, отследить появление/снятие Comm порта
сидященго на USB под драйвером CP2101(при отключении/установке
кабеля). Закрытие приложения при снятии кабеля тянет за собой
"синий экран, если не предпринять мер.
Вопрос: как грамотно разобрать сообщение.
Заранее спасибо.
← →
simpson © (2005-07-12 21:27) [1]Return Values
Return TRUE to grant the request.
Return BROADCAST_QUERY_DENY to deny the request.
Remarks
For devices that offer software-controllable features, such as ejection and locking, the system typically sends a DBT_DEVICEREMOVEPENDING message to let applications and device drivers end their use of the device gracefully. If the system forcibly removes a device, it may not send a DBT_DEVICEQUERYREMOVE message before doing so.
Читал?
← →
Virgo_Style © (2005-07-12 22:08) [2]
const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;
procedure TForm1.WMDeviceChange(var Message: TMessage);
var
s : string;
begin
{Do Something here}
case Message.wParam of
DBT_DEVICEARRIVAL :
s := "A device has been inserted and is now available";
DBT_DEVICEQUERYREMOVE: begin
s := "Permission to remove a device is requested";
ShowMessage(s);
{True grants premission}
Message.Result := integer(true);
exit;
end;
DBT_DEVICEQUERYREMOVEFAILED :
s := "Request to remove a device has been canceled";
DBT_DEVICEREMOVEPENDING :
s := "Device is about to be removed";
DBT_DEVICEREMOVECOMPLETE :
s := "Device has been removed";
DBT_DEVICETYPESPECIFIC :
s := "Device-specific event";
DBT_CONFIGCHANGED :
s:= "Current configuration has changed"
else s := "Unknown Device Message";
end;
ShowMessage(s);
inherited;
end;
Откуда взял - не помню...
← →
GEN++ © (2005-07-20 20:24) [3]>Virgo_Style
Спасибо! Кое-чем помогло.
Под Win 98 все нормально, но вот под XP
поблема следующая: на некоторох компах
генерится параметр $8000 при восстановлении устройства
и $8004 при удалении, но на Ноуте в качестве параментра
устойчиво, 3 раза подряд выдается 0 как при активизации
устройства, так и при его физическом удаплении. В панели
появление и удаление устройства четко отслеживается.
Может быть все же кто-нибудь с этим работал. Нужна помощь.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c