当驱动器号变为可访问时,是否可以得到通知(没有轮询,但通过事件)?例如,如果您有一个始终显示为驱动器F的外部硬盘驱动器 - 是否有可能在连接F时触发事件?如何在驱动器号变得可用时得到通知
1
A
回答
1
好吧..发现我一直在寻找:)
在这个VBScript中看看:(source):
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colEvents = objWMIService.ExecNotificationQuery _
("Select * From __InstanceOperationEvent Within 10 Where " _
& "TargetInstance isa 'Win32_LogicalDisk'")
Do While True
Set objEvent = colEvents.NextEvent
If objEvent.TargetInstance.DriveType = 2 Then
Select Case objEvent.Path_.Class
Case "__InstanceCreationEvent"
Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _
" has been added."
Case "__InstanceDeletionEvent"
Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _
" has been removed."
End Select
End If
Loop
我把它留给你的运动将它移植到C#。
不是一直在轮询您可以使用WMI event sink。
1
您可以等待WM_DEVICECHANGE消息,所有的细节都在:
http://msdn.microsoft.com/en-us/library/aa363215(VS.85).aspx
你将不得不创建一个窗口收到此消息,该窗口可以,如果你需要隐藏,在WinForms中获取此消息只需重写Form.WndProc方法
相关问题
- 1. 如何在UIView变得可见时得到通知?
- 2. 如何在某个应用程序启动时得到通知?
- 3. 如何在状态栏高度变化时得到通知?
- 4. 如何在键盘布局发生变化时得到通知?
- 5. NSWindow关闭时如何得到通知
- 6. 如何在Internet Explorer获得焦点时得到通知
- 7. 如何在活动开始时得到通知
- 8. 如何在“添加帐户”活动完成时得到通知
- 9. 得到通知
- 10. 如何在android中禁用用户的gps时得到通知?
- 11. 如何从驱动器的全名获得驱动器盘符
- 12. Azure在我的主数据库变得不可用时如何通知我?
- 13. 如何获得可用的网络驱动器映射?
- 14. 更新通知,当它变得可见
- 15. 如何在前台应用程序切换时得到通知
- 16. Android - 如何在用户粘贴东西时得到通知
- 17. NSTextView:如何在用户粘贴数据时得到通知?
- 18. 如何获得驱动器号和名称
- 19. 如何获得批处理脚本运行的驱动器号?
- 20. 如何获得Perl中的已安装驱动器号?
- 21. 如何获得驱动器号和名称(卷标)
- 22. 通过calltask发射器得到通知
- 23. 如何在使用setRequestedOrientation()后方向会发生变化时得到通知?
- 24. 如何在iOS中接收到新短信时得到通知
- 25. 推送通知得到改变
- 26. 在COM中,如何在客户死亡时得到通知?
- 27. 在屏幕在libgdx中可见时会得到通知
- 28. enumerateLinesUsingBlock完成时如何获得通知
- 29. 如何获得实时rss通知
- 30. 得到通知时,控制任何的DependencyProperty改变