當驅動器號變爲可訪問時,是否可以得到通知(沒有輪詢,但通過事件)?例如,如果您有一個始終顯示爲驅動器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. Azure在我的主數據庫變得不可用時如何通知我?
- 11. 如何獲得可用的網絡驅動器映射?
- 12. NSTextView:如何在用戶粘貼數據時得到通知?
- 13. Android - 如何在用戶粘貼東西時得到通知
- 14. 如何在前臺應用程序切換時得到通知
- 15. 如何獲得批處理腳本運行的驅動器號?
- 16. 如何獲得Perl中的已安裝驅動器號?
- 17. 如何在使用setRequestedOrientation()後方向會發生變化時得到通知?
- 18. 如何在iOS中接收到新短信時得到通知
- 19. 推送通知得到改變
- 20. 在COM中,如何在客戶死亡時得到通知?
- 21. 在屏幕在libgdx中可見時會得到通知
- 22. 得到通知時,控制任何的DependencyProperty改變
- 23. 如何讓窗口在WPF中獲得焦點時得到通知?
- 24. 如何在window 7中發生「switch user」時得到通知
- 25. 如何在領域對象更新時得到通知
- 26. 如何在iPad鍵盤消失時得到通知?
- 27. 如何在Leaflet LayerGroup顯示或隱藏時得到通知?
- 28. 如何在生產者連接中斷時得到通知?
- 29. 如何在UIView完全加載時得到通知
- 30. MFMailComposeViewController:如何在視圖出現時得到通知?