VB.net 我的程序只有一个窗体,窗体很小,怎么才能检测到鼠标在窗体以外的范围移动,还有键盘输入

打开窗体后,鼠标移动会触发事件(包括窗体以外范围)... 打开窗体后,鼠标移动会触发事件(包括窗体以外范围) 展开
 我来答
lrh3321
推荐于2016-04-14 · TA获得超过2183个赞
知道大有可为答主
回答量:2296
采纳率:75%
帮助的人:2115万
展开全部

用API GetCursorPos  

用Timer隔一段时间获取一次鼠标位置。

键盘输入,用 GetKeyboardState 

加点分的话就给你完整的代码


Public Class NativeMethods
        '获取鼠标位置
Declare Function GetCursorPos Lib "user32.dll" _
(ByRef lpPoint As System.Drawing.Point) as boolean

Private Shared keyState() As Byte
<DllImport("user32.dll")> _
    Private Shared Function GetKeyboardState(ByVal keyState() As Byte) As Boolean
    End Function
 
    Private Shared Sub Update()
    keyState = New Byte(256) {}
    Dim result As Boolean = GetKeyboardState(keyState)
    ' Check for error:
    If result = False Then
        Debug.WriteLine("GetKeyBoardState error: " & Marshal.GetLastWin32Error)
        Throw New Exception("GetKeyBoardState error: " & Marshal.GetLastWin32Error)
    End If
    End Sub
 
    Public Enum LightState
    Off
    [On]
    End Enum
 
    ' Example - the keyboard lights...
 
    Public Shared ReadOnly Property CapsLockState() As LightState
    Get
        Update()
        Dim isOn As Boolean = (keyState(Keys.CapsLock) = 1)
        Return IIf(isOn, LightState.On, LightState.Off)
    End Get
    End Property
 
    Public Shared ReadOnly Property NumLockState() As LightState
    Get
        Update()
        Dim isOn As Boolean = (keyState(Keys.NumLock) = 1)
        Return IIf(isOn, LightState.On, LightState.Off)
    End Get
    End Property
 
    Public Shared ReadOnly Property ScrollLockState() As LightState
    Get
        Update()
        Dim isOn As Boolean = (keyState(Keys.Scroll) = 1)
        Return IIf(isOn, LightState.On, LightState.Off)
    End Get
    End Property
 
End Class


pinvoke.net: GetCursorPos (user32)

http://www.pinvoke.net/default.aspx/user32/GetCursorPos.html


pinvoke.net: GetKeyboardState (user32)

http://www.pinvoke.net/default.aspx/user32/GetKeyboardState.html

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式