我試圖使用以下c#代碼來檢測附加/移除的事件 usb大容量存儲設備。我正在使用Win32_VolumeChangeEvent。WMI事件Win32_VolumeChangeEvent在Windows XP上工作
// Initialize an event watcher and subscribe to events that match this query
var _watcher = new ManagementEventWatcher("select * from Win32_VolumeChangeEvent");
_watcher.EventArrived += OnDeviceChanged;
_watcher.Start();
void OnDeviceChanged(object sender, EventArrivedEventArgs args)
{
Console.WriteLine(args.NewEvent.GetText(TextFormat.Mof));
}
的問題是,能正常工作在Vista上,但它並沒有在所有的XP工作(沒有收到任何事件)。 Microsoft文檔說這應該起作用(http://msdn.microsoft.com/en-us/library/aa394516(VS.85).aspx)。我搜索了很長一段時間,發現其他人也有這個問題。但我也發現了一些文章,聲稱這種查詢(主要是VBScript)適用於XP。但是我無法從微軟那裏找到關於這個問題的一些官方信息,我不相信微軟已經忽略了三個服務包的這個問題。
所以我的問題是:有人在XP上成功使用Win32_VolumeChangeEvent,或者可以提供一個鏈接/解釋爲什麼它不應該在XP上工作?
當六年前我問這個問題時,它並沒有寫在文檔中,但現在是這樣。無論如何,我希望沒有人爲Windows XP開發;-) – 2015-09-22 08:47:34