VB.NETを使用してCaps Lockが有効になっているかどうかを確認するにはどうすればよいですか?VB.NETでCaps Lockの現在の状態を取得するにはどうすればよいですか?
これは私のearlier questionのフォローアップです。
VB.NETを使用してCaps Lockが有効になっているかどうかを確認するにはどうすればよいですか?VB.NETでCaps Lockの現在の状態を取得するにはどうすればよいですか?
これは私のearlier questionのフォローアップです。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.iskeylocked.aspx
Imports System
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Public Class CapsLockIndicator
Public Shared Sub Main()
if Control.IsKeyLocked(Keys.CapsLock) Then
MessageBox.Show("The Caps Lock key is ON.")
Else
MessageBox.Show("The Caps Lock key is OFF.")
End If
End Sub 'Main
End Class 'CapsLockIndicator
using System;
using System.Windows.Forms;
public class CapsLockIndicator
{
public static void Main()
{
if (Control.IsKeyLocked(Keys.CapsLock)) {
MessageBox.Show("The Caps Lock key is ON.");
}
else {
MessageBox.Show("The Caps Lock key is OFF.");
}
}
}
私は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 ...
は5ミリ秒に設定されて有効になっているタイマーを作成します。ラベルlabel1を作成します。その後、(タイマーの)次のコードを試してください。 .rpによって投稿
Public Class Form1
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
End Class
ソリューションは動作しますが、Me.KeyDownイベントハンドラと競合しています。私は入力が押されたときにサインイン機能を呼び出すサブメニューを持っています。 (以下に示す)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