Маленький коментарий:
При открытии сидирома срабатывает 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_) Багель

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить