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