我有一個非常複雜的社區排隊: 我必須用數百臺運行Win XP Pro SP3的PC來管理一個實驗室。有時候學生將電腦和鍵盤從計算機上斷開,所以在每節課結束後我都要檢查每一臺機器,並檢查它們是否被監控,並且這會嚴重影響我的工作。所以我在VBScript中編寫了一個腳本來檢查機器,並將有關配置的信息放入數據庫中,以幫助我判斷機器上是否有錯誤。現在,我還想檢查一下,如果PS2鍵盤和/或PS2鼠標已連接或不連接,那麼我可以在新班級開始之前立即恢復它們,而不需要通過機器進行嘗試。我怎樣才能做到這一點? WMI?怎麼樣?謝謝。有沒有使用VBscript檢查PS2鍵盤和/或PS2鼠標是否連接到運行Windows XP或更高版本的計算機的方法?
2
A
回答
1
WMI應該可能提供此信息。例子見this related question。你可能會needWin32_Keyboard
和Win32_PointingDevice
,也許Win32_PnPEntity
如果那些do not report disconnecting(我不能測試PS/2硬件)。
所有這些都應該轉換成VBScript,也許使用微軟的documentation約WMI from VBScript。一開始:
On Error Resume Next
For Each strComputer In Array("localhost")
WScript.Echo "Computer: " & strComputer
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Keyboard", "WQL", &h30)
For Each objItem In colItems
WScript.Echo objItem.Availability, objItem.Caption, _
objItem.ConfigManagerErrorCode, objItem.ConfigManagerUserConfig, _
objItem.Description, objItem.DeviceID, _
objItem.ErrorCleared, objItem.ErrorDescription, _
objItem.IsLocked, _
objItem.LastErrorCode, _
objItem.Layout, _
objItem.Name, _
objItem.PNPDeviceID, _
objItem.Status, objItem.StatusInfo, _
objItem.SystemCreationClassName, objItem.SystemName
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PointingDevice", "WQL", &h30)
For Each objItem In colItems
WScript.Echo objItem.Availability, objItem.Caption, _
objItem.ConfigManagerErrorCode, objItem.ConfigManagerUserConfig, _
objItem.Description, objItem.DeviceID, _
objItem.DeviceInterface, _
objItem.ErrorCleared, objItem.ErrorDescription, _
objItem.HardwareType, _
objItem.IsLocked, _
objItem.LastErrorCode, _
objItem.Name, _
objItem.PNPDeviceID, _
objItem.PointingType, _
objItem.Status, objItem.StatusInfo, _
objItem.Synch, _
objItem.SystemCreationClassName, objItem.SystemName
Next
Next
相關問題
- 1. 即使沒有連接鼠標或鍵盤,Pyautogui命令仍在運行
- 2. 檢查Java中的Windows XP或更高版本?
- 3. Php ESP沒有運行到php 5.3.4版本或更高版本
- 4. 我嘗試使用PS2鼠標草圖將Genius鼠標連接到Arduino,但它不會初始化鼠標
- 5. 有沒有辦法查看物理鍵盤是否連接到Windows 8設備?
- 6. 是否有連接LOCALHOST沒有使用SQL Server計算機名的方法嗎?
- 7. 有沒有辦法確定Windows計算機是否連接了觸控板和鼠標?
- 8. 如何檢查HoneyComb或更高版本是否正在運行,並相應地調用該版本的方法?
- 9. 使用PHP或Javascript檢查iOS版本是否爲3.0或更高版本
- 10. 檢查是否安裝了Windows Installer 3.1或更高版本?
- 11. 有沒有辦法以編程方式檢查Mac或PC鍵盤是否連接?
- 12. 有沒有辦法讓INFORMIX-SQL 4.10在Windows XP及更高版本上本機運行?
- 13. 如何檢測牆紙改變時(Windows XP或更高版本)?
- 14. 如何檢測Windows Mobile上的鍵盤和/或鼠標輸入?
- 15. 當沒有使用鍵盤或鼠標時自動註銷
- 16. 檢查是否有人正在使用遠程桌面連接到計算機
- 17. 檢查鍵盤和鼠標是否可用於Qt
- 18. 獲取有關連接到計算機的顯示器,鍵盤和鼠標的信息
- 19. nwjs是否有方法檢查是否使用sdk版本?
- 20. 當監視器,鼠標,鍵盤斷開連接時,Windows可以檢測到嗎?
- 21. 有沒有辦法在鼠標上連接dijit.form.DropDownButton.openDropDown()(或closeDropDown())?
- 22. 有沒有辦法檢查連接標識是否存在?
- 23. 創建一個沒有鼠標或鍵盤事件的蛇
- 24. 編程檢測鼠標和鍵盤是否插入
- 25. 如何在沒有Internet連接的Windows XP計算機上安裝Python psutil庫?
- 26. 有沒有辦法確定GNU Emacs 23(或更高版本)是否在KDE下運行?
- 27. 檢查計算機是否使用VBscript鎖定
- 28. 如何判斷操作系統是否爲Windows XP或更高版本?
- 29. 檢查計劃任務是否使用vbscript運行
- 30. 如何檢查用戶是否運行Vista或XP
很多很多謝謝米歇爾!它看起來很完美!我嘗試了一臺機器:一次插入鍵盤和鼠標,我有兩個msgbox(一個是鍵盤數據,另一個是鼠標數據);有一次只是鍵盤,我只有鍵盤數據的msgbox;有一次只需鼠標插入,我只有鼠標數據的msgbox。再次感謝! – user3697206