2016-07-07 10 views
0

私はUSB SDカードリーダーの挿入/削除を監視しようとしています。目標はマウントされたディレクトリを見ることです。私は抜い/ USBプラグを監視することができますが、読者はありませんSDカード、イベントに挿入されたとき:.Net WMI <Blah>ディレクトリを監視するChangeEvent

Win32_DeviceChangeEvent
mWatcher = new ManagementEventWatcher(); 
mWatcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived); 
mWatcher.Query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2 OR EventType = 3"); 
  1. コードsnipletはこのような何かを見て、主な違いは、クエリですトリガーが発生しますが、マウントポイントが無効です。 SDカードをリーダーに挿入すると、イベントは発生しません。

  2. Win32_VolumeChangeEvent:イベントは、マウントポイントがドライブ文字の場合にトリガーされます(たとえば、F:\)。しかし、マウントポイントがドライブレターではなくディレクトリ(C:\usb_reader\のようなもの)の場合、このイベントはトリガーされません。

マウントポイントが変更されたときにトリガーされるイベントはありますか?何かがに/ C:\usb_readerから...

答えて

1

/アンマウント装着した場合、たとえば、私はあなたが車輪の再発明する必要があること を考えていない、誰かがすでに同様のプロジェクトを行っている:Here

使い方はまさにですあなたは必要があります:

{ 
    DriveDetector driveDetector = new DriveDetector(); 
    driveDetector.DeviceArrived += new DriveDetectorEventHandler(OnDriveArrived); 
    driveDetector.DeviceRemoved += new DriveDetectorEventHandler(OnDriveRemoved); 
    driveDetector.QueryRemove += new DriveDetectorEventHandler(OnQueryRemove); 
} 

興味があれば、ソースコードをチェックすることができます。

関連する問題