USBメモリーの存在確認を行うために、 PCのハードウェア情報の取得をWMI(Windows Management Instrumentation)を使います。
ManagementObjectSearcherクラスを使って、WMIの情報を取得します。
WMIにはいろいろな情報を持っていますが、それを取得するための言語WQL(WMI Query Language)を使って取得します。
SQL言語のような記述で、以下のソースの中では
「SELECT * FROM Win32_DiskDrive where InterfaceType='USB'」
の部分です。
ManagementObjectSearcherクラスのコンストラクタの第1引数のスコープの指定で、"root\cimv2"と設定します。
この"root\cimv2"はシステム管理者にとって関心のあるWMIクラスのほとんどが格納されているそうです。
(cimv2とはCommon Information Model Version 2 というらしい)
さてSELECT文の中のWin32_DiskDriveですが、 Win32_DiskDriveクラスは、Win32 オペレーティング システムを 実行しているコンピューターで見ることができる物理ディスクドライブを表すそうです。
InterfaceTypeには以下の種類があります。
・SCSI
・HDC
・IDE
・USB
・1394
この中の”USB”を指定します。