[C#][Windows API] 取得鍵盤按鍵與CapsLock、NumLock、ScrollLock狀態
以下示範透過GetKeyState來取得按鍵狀態與CapsLock等按鍵的啟用狀態。
程式碼用到的KeyCode虛擬鍵盤碼可至Virtual-Key Codes查詢。
原生方法的宣告方式請參考[常用Windows原生方法整理(Windows API)]。
※全文歡迎轉載但請註明出處,謝謝。※
/// 取得CapsLock鍵是否啟動。
/// </summary>
public static bool CapsLock { get { return (((ushort)NativeMethods.GetKeyState(0x14)) & 0xffff) != 0; } }
/// <summary>
/// 取得NumLock鍵是否啟動。
/// </summary>
public static bool NumLock { get { return (((ushort)NativeMethods.GetKeyState(0x90)) & 0xffff) != 0; } }
/// <summary>
/// 取得ScrollLock鍵是否啟動。
/// </summary>
public static bool ScrollLock { get { return (((ushort)NativeMethods.GetKeyState(0x91)) & 0xffff) != 0; } }
/// 取得指定的虛擬按鍵碼所代表的按鍵是否被按下。
/// </summary>
/// <param name="KeyCode">虛擬按鍵碼。</param>
public static bool KeyIsDown(int KeyCode)
{
if ((NativeMethods.GetKeyState(KeyCode) & 0x80) == 0x80)
return true;
else
return false;
}