リムーバブルディスク挿入の検知


伊藤美紀  2008-07-07 11:39:41  No: 31153  IP: 192.*.*.*

常駐して、リムーバブルディスクが挿入された事を検知したいのですが、
中々良い方法が見つかりません。
よろしくお願い申し上げます。

編集 削除
Manbon  2008-07-07 14:08:41  No: 31154  IP: 192.*.*.*

USBメモリでは反応しました。

{ Private 宣言 }
procedure DEVICECHANGE(var Msg: Tmessage); message WM_DEVICECHANGE;

procedure TForm1.DEVICECHANGE(var Msg: Tmessage);
const
  DBT_DEVICEARRIVAL        = $8000;
  DBT_DEVICEREMOVECOMPLETE = $8004;
begin
  case Msg.WParam of
    DBT_DEVICEARRIVAL: showmessage('入');
    DBT_DEVICEREMOVECOMPLETE: showmessage('出');
  end;
end;

編集 削除
ofZ  2008-07-07 14:17:43  No: 31155  IP: 192.*.*.*

キーワード
WM_DEVICECHANGE, DBT_DEVICEARRIVAL, DEVICEREMOVECOMPLETE

資料
DBT_DEVICEARRIVAL=$8000;
DBT_DEVICEQUERYREMOVE= $8001;
DBT_DEVICEQUERYREMOVEFAILED=$8002;
DBT_DEVICEREMOVECOMPLETE=$8004;
DBT_DEVICEREMOVEPENDING=$8003;
DBT_DEVICETYPESPECIFIC=$8005;

参考URL
http://support.microsoft.com/kb/163503/ja
http://oshiete1.goo.ne.jp/qa3111387.html

編集 削除
ofZ  2008-07-07 14:26:38  No: 31156  IP: 192.*.*.*

あぁ・・・ちょっと他のことしている間に、ズバリのレスついてた。

Manbonさんも書いているけど、USBメモリの抜き差しやCDの挿入・排出等、
いろいろなイベントで発生します。
Bluetoothアダプタとか、USB無線LANアダプタの抜き差しとかでも発生するんじゃないかな。

編集 削除
とおりすがり  2008-07-08 01:12:11  No: 31157  IP: 192.*.*.*

ここも役立つ
http://www.codeproject.com/KB/system/HwDetect.aspx

編集 削除