Маленький коментарий:
При открытии сидирома срабатывает DBT_DEVICEREMOVECOMPLETE, при закрытии DBT_DEVICEARRIVAL
При подключении сетевого диска также приходит DBT_DEVICEARRIVAL а при отключении DBT_DEVICEREMOVECOMPLETE
При подключении или отключении флэшки срабатывает DBT_DEVNODES_CHANGED...
Code: |
unit Unit1; {©Drkb v.3(2007): www.drkb.ru}
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, MMSystem;
type TForm1 = class(TForm) public procedure CD(var Msg: TMessage); message WM_DEVICECHANGE; end;
const DBT_DEVICEARRIVAL = $8000; DBT_DEVICEREMOVECOMPLETE = $8004; DBT_DEVNODES_CHANGED = $7;
var Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.CD(var Msg: TMessage); begin case Msg.WParam of DBT_DEVNODES_CHANGED: Caption := 'Flash change'; DBT_DEVICEARRIVAL: Caption := 'CD close with new disk'; DBT_DEVICEREMOVECOMPLETE: Caption := 'CD open'; //DBT_DEVICEARRIVAL: Caption := 'New network disk maped'; //DBT_DEVICEREMOVECOMPLETE: Caption := 'Network disk unmaped'; else Caption := 'Unknown'; end; end;
end. |
Автор: Александр (Rouse_) Багель
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!