首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监视目录的.Net WMI <Blah>ChangeEvent

监视目录的.Net WMI <Blah>ChangeEvent
EN

Stack Overflow用户
提问于 2016-07-07 14:35:27
回答 1查看 52关注 0票数 0

我试图监视USB卡读卡器插入/删除,目的是观察挂载目录。

代码片段如下所示,主要区别是查询:

代码语言:javascript
复制
mWatcher = new ManagementEventWatcher();
mWatcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived);
mWatcher.Query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2 OR EventType = 3");
  1. 使用Win32_DeviceChangeEvent:我可以监视USB插头/拔出,但是当没有SDCard插入读取器时,事件会触发,但是挂载点无效。如果然后向读取器插入一个SDCard,则不会触发任何事件。
  2. 使用Win32_VolumeChangeEvent:当挂载点是驱动器号(例如,F:\)时,事件触发。但是,如果挂载点是目录(类似于C:\usb_reader\),而不是驱动器号,则此事件不会触发。

当挂载点改变时,是否有触发的事件?例如,当某物被挂载/卸载到/从C:\usb_reader.

EN

回答 1

Stack Overflow用户

发布于 2016-07-07 14:44:48

我不认为你需要重新发明轮子,有人已经做过类似的项目:这里

使用正是您所需要的:

代码语言:javascript
复制
{
     DriveDetector driveDetector = new DriveDetector();
     driveDetector.DeviceArrived += new DriveDetectorEventHandler(OnDriveArrived);
     driveDetector.DeviceRemoved += new DriveDetectorEventHandler( OnDriveRemoved);
     driveDetector.QueryRemove += new DriveDetectorEventHandler(OnQueryRemove);
}

如果有兴趣,可以检查源代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38248271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档