Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Определение подключения / отключения нового устройства

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.

Автор: Александр (Rouse_) Багель

Взято из https://forum.sources.ru