常駐して、リムーバブルディスクが挿入された事を検知したいのですが、
中々良い方法が見つかりません。
よろしくお願い申し上げます。
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;
キーワード
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
あぁ・・・ちょっと他のことしている間に、ズバリのレスついてた。
Manbonさんも書いているけど、USBメモリの抜き差しやCDの挿入・排出等、
いろいろなイベントで発生します。
Bluetoothアダプタとか、USB無線LANアダプタの抜き差しとかでも発生するんじゃないかな。
ここも役立つ
http://www.codeproject.com/KB/system/HwDetect.aspx
ツイート | ![]() |