[C#][Windows API] 取得鍵盤按鍵與CapsLock、NumLock、ScrollLock狀態

  • 10343
  • 0
  • 2011-06-08

[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;
        }

分享