Определение подключения / отключения нового устройства
01.01.2007
Маленький коментарий:
При открытии сидирома срабатывает DBT_DEVICEREMOVECOMPLETE, при закрытии DBT_DEVICEARRIVAL
При подключении сетевого диска также приходит DBT_DEVICEARRIVAL а при отключении DBT_DEVICEREMOVECOMPLETE
При подключении или отключении флэшки срабатывает DBT_DEVNODES_CHANGED...
unit Unit1;
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.
Взято из https://forum.sources.ru