gpt4 book ai didi

vb.net - 以编程方式检测鼠标和键盘是否已插入

转载 作者:可可西里 更新时间:2023-11-01 10:04:49 30 4
gpt4 key购买 nike

我想知道检测鼠标或键盘是否插入计算机的最佳方法是什么?我有一个主要用于独立触摸屏的应用程序,但我想知道是否有插入的键盘不会触发拉起 Windows 键盘或包含数字小键盘的表单。如果未插入鼠标,则更改一些行为。

最佳答案

使用 VB.Net,我会使用 System.Management(不要忘记在项目 [菜单] -> 添加引用中添加此引用)ManagementObjectSearcher 组合使用 System.Linq 找到这样的解决方案,

Imports System
Imports System.Management
Imports System.Linq

Public Module Module1
Public Sub Main()
Console.WriteLine(HasDevice("PointingDevice"))
Console.WriteLine(HasDevice("Keyboard"))
Console.ReadKey()
End Sub

Public Function HasDevice(strtype As String)
Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_" + strtype)
Dim result = From mobj In searcher.Get()
Select mobj Where mobj("Status").ToString() = 0
Return Not IsNothing(result)
End Function
End Module

结果

enter image description here

您也可以对其进行硬编码以避免像 TRiNE 建议的那样输入错误(尽管使用 C#)

Public Function HasPointingDevice()
Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_PointingDevice")
Dim result = From mobj In searcher.Get()
Select mobj Where mobj("Status").ToString() = 0
Return Not IsNothing(result)
End Function

Public Function HasKeyboard()
Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_Keyboard")
Dim result = From mobj In searcher.Get()
Select mobj Where mobj("Status").ToString() = 0
Return Not IsNothing(result)
End Function

然后这样称呼他们

Public Sub Main()
Console.WriteLine(HasPointingDevice())
Console.WriteLine(HasKeyboard())
Console.ReadKey()
End Sub

它们会产生相同的结果

关于vb.net - 以编程方式检测鼠标和键盘是否已插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514847/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com