• 締切済み

USBメモリの接続を感知するには

Windows XPとVistaでUSBメモリの接続を自動的に感知して、そのメモリ中にあるファイルを調べるプログラムを作りたいのですが、どのプログラミング言語を使えばいいでしょうか?VBscriptやJavaでできますか? 無限ループを作って毎回新しいドライブが接続されているかどうかを調べることは簡単にできると思いますが、これではあまりに効率が悪いと思うので何かいい方法を教えてください。 USBメモリが接続されるまで待機することができるのが理想です。

みんなの回答

回答No.1

ハードウェア構成の変化は「WM_DEVICECHANGE」で検知できます。ウィンドウメッセージを捉える必要がるので、メッセージループやサブクラス化を直接扱える言語であればなんでも大丈夫だと思います。 JavaはともかくVBScriptでは難しいでしょうね…。 VB.NETであれば下記のようなコードだけでデバイス接続を検知できます。その代わりなんにでも反応しますが。 Public Class Form1 Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) If m.Msg = &H219 Then Console.WriteLine("DeviceChange") MyBase.WndProc(m) End Sub End Class 接続されたデバイスの判別方法などは「WM_DEVICECHANGE」をキーワードに探してみるとよいかと。

関連するQ&A