Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VB.NET中获取Caps Lock的当前状态?_.net_Windows_Vb.net - Fatal编程技术网

如何在VB.NET中获取Caps Lock的当前状态?

如何在VB.NET中获取Caps Lock的当前状态?,.net,windows,vb.net,.net,Windows,Vb.net,如何使用VB.NET确定是否激活了Caps Lock 这是我的。我不是VB.NET的专家,所以我只想到PInvoke: Declare Function GetKeyState Lib "user32" Alias "GetKeyState" (ByValnVirtKey As Int32) As Int16 Private Const VK_CAPSLOCK = &H14 If GetKeyState(VK_CAPSLOCK) = 1 Then ... C版本: 使用

如何使用VB.NET确定是否激活了Caps Lock


这是我的。

我不是VB.NET的专家,所以我只想到PInvoke:

Declare Function GetKeyState Lib "user32" 
   Alias "GetKeyState" (ByValnVirtKey As Int32) As Int16

Private Const VK_CAPSLOCK = &H14

If GetKeyState(VK_CAPSLOCK) = 1 Then ...


C版本:

使用系统;
使用System.Windows.Forms;
公共类CapsLockIndicator
{
公共静态void Main()
{
if(控制键已锁定(键已锁定)){
MessageBox.Show(“大写锁定键已打开”);
}
否则{
MessageBox.Show(“大写锁定键已关闭”);
}
}
}

创建一个设置为5毫秒且已启用的计时器。
然后制作一个名为
label1
的标签。之后,尝试以下代码(在计时器事件处理程序中)

由works发布的解决方案,但与
Me.KeyDown
事件处理程序冲突。
我有一个sub,在按下enter键时调用登录功能(如下所示)。
My.Computer.Keyboard.CapsLock
状态有效,并且与
Me.Keydown
不冲突

Private Sub WindowLogin_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown

    If Keyboard.IsKeyDown(Key.Enter) Then
        Call SignIn()
    End If

End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If My.Computer.Keyboard.CapsLock = True Then
        Label1.Text = "Caps Lock Enabled"
    Else
        Label1.Text = "Caps Lock Disabled"
    End If
End Sub
Private Sub WindowLogin_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown

    If Keyboard.IsKeyDown(Key.Enter) Then
        Call SignIn()
    End If

End Sub