|
分類:[C#]
Visual Studio 2019 C# Windowsフォームアプリケーション(.NET Framework)
USBメモリの抜き差しを認識し、アプリの表示に反映したいと考えています。
USBメモリを物理的に抜き差しした時は以下のコードで認識出来ますが、
エクスプローラの右クリックメニューから「取り出し」を実行した時はイベントが発生しません。
「取り出し」を実行した時のイベントを捕捉する方法をご存じの方はいらっしゃいませんでしょうか?
ManagementEventWatcher watcher = new ManagementEventWatcher();
watcher.Query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent");
//watcher.Query = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent");
watcher.EventArrived += (sender2, e2) =>
{
ushort eventType = Convert.ToUInt16(e2.NewEvent.Properties["EventType"].Value);
switch (eventType)
{
case 1: Console.WriteLine($"Configuration Changed"); break;
case 2: Console.WriteLine($"Device Arrival"); break;
case 3: Console.WriteLine($"Device Removal"); break;
case 4: Console.WriteLine($"Docking"); break;
default: Console.WriteLine($"{eventType}"); break;
}
};
watcher.Start();
|