检测VB6中的键盘



我有一个遗留的VB6项目,现在可以在没有附加keybord的系统上运行。在这种情况下,程序会打开屏幕上的MS键盘。我需要检测是否连接了键盘。如果连接了键盘,则跳过打开屏幕上的键盘。此时,它打开了屏幕上的键盘,然后用户必须关闭它。这是Clunky。我无法迁移此应用程序,因为它支持VB.net无法访问的一些遗留设备。请有任何想法。

Windows Management Instrumentation是一种方法。以下代码查找状态为OK的键盘:

Private Function hasKeyboard() As Boolean
Dim WMIService As Object
Dim Items As Object
Dim Item As Object
hasKeyboard = False
Set WMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\.rootcimv2")
Set Items = WMIService.ExecQuery("SELECT * FROM Win32_Keyboard")
For Each Item In Items
If InStr(1, UCase(Item.Status), "OK") > 0 Then
hasKeyboard = True
Exit Function
End If
Next
End Function

最新更新