我用我的Windows服務的代碼通知USB磁盤驅動器的插入和刪除:如何在一個服務中插入USB磁盤驅動器並刪除事件,而不會在某些操作系統上重複訪問我的硬盤驅動器?
WqlEventQuery query = new WqlEventQuery("__InstanceOperationEvent",
"TargetInstance ISA 'Win32_LogicalDisk' AND TargetInstance.DriveType=2");
query.WithinInterval = TimeSpan.FromSeconds(1);
_deviceWatcher = new ManagementEventWatcher(query);
_deviceWatcher.EventArrived += new EventArrivedEventHandler(OnDeviceEventArrived);
_deviceWatcher.Start();
它適用於XP和Vista,但XP,我可以聽到硬盤的非常明顯的聲音每秒訪問一次。是否有另一個WMI查詢會給我沒有聲音效果的事件?
您在那裏的查詢不是專門查找USB設備,而是安裝新磁盤,因此在格式化硬盤時可能會觸發,而不是在插入非基於磁盤的USB設備(如鼠標)時觸發。 – DamienG 2008-09-20 00:29:58
謝謝,編輯指定我真正想要的 - USB磁盤驅動器插入和刪除事件。我添加了「DriveType = 2」(指定可移動磁盤),希望能消除硬盤驅動器的聲音,但沒有運氣。 – Wonko 2008-10-01 02:42:05