检测网络驱动器挂载wmi
如何使用 wmi 检测网络驱动器安装事件?我主要感兴趣的是像 Win32_VolumeChangeEvent 这样的网络驱动器。
_eventWatcher = new ManagementEventWatcher("SELECT * FROM Win32_VolumeChangeEvent");
_eventWatcher.EventArrived += (o, args) =>
{switch(args.NewEvent["EventType"].ToString()[0])
{
case '2':
//mount
Debug.WriteLine(args.NewEvent["DriveName"]);
break;
case '3':
//unmount
break;
}
};
_eventWatcher.Start();
提前致谢。
How to detect network drive mount event using wmi ? I'm mainly interested i something like Win32_VolumeChangeEvent just for network drives.
_eventWatcher = new ManagementEventWatcher("SELECT * FROM Win32_VolumeChangeEvent");
_eventWatcher.EventArrived += (o, args) =>
{switch(args.NewEvent["EventType"].ToString()[0])
{
case '2':
//mount
Debug.WriteLine(args.NewEvent["DriveName"]);
break;
case '3':
//unmount
break;
}
};
_eventWatcher.Start();
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用此查询(我使用 Powershell 进行快速测试,但您可以轻松转换为 C#)
You can use this query (I use Powershell for rapid test but you can easily transform to C#)
对于网络共享监控,您可以使用RegistryKeyChangeEvent。
最终代码应如下所示:
每次用户安装或卸载网络共享时,此代码都会调用处理函数。
For network share monitoring you can use RegistryKeyChangeEvent.
The final code should be something like this:
This code will call the handler function every time the user mounts or dismounts a network share.
您可以侦听任何 VolumeChangeEvent,然后只需检查驱动器是否是网络驱动器:
You can listen for any VolumeChangeEvent and then just check if the drive is a network drive: