[C#][Windows API] 模擬鍵盤行為

  • 15818
  • 0

[C#][Windows API] 模擬鍵盤行為

以下這段程式碼是在示範keybd_event方法,用於模擬使用者按下指定的鍵盤按鍵,這個方法也可以控制CapsLock、ScrollLock、NumLock三個按鍵。

原生方法的宣告請參考[常用Windows原生方法整理(Windows API)],常數內容請參考[Windows 原生指令常數 (Windows API Constansts)]

若要取得CapsLock、ScrollLock、NumLock按鍵與其他按鍵的狀態請參考[取得鍵盤按鍵與CapsLock、NumLock、ScrollLock狀態]

    {
        /// <summary>
        /// 模擬按下指定的按鍵。
        /// </summary>
        public static void KeyDown(Keys KeyCode)
        {
            NativeMethods.keybd_event((Byte)KeyCode, 0x45, NativeContansts.KEF_EXTENDEDKEY, (UIntPtr)0);
        }
        /// <summary>
        /// 模擬釋放指定的按鍵。
        /// </summary>
        public static void KeyUp(Keys KeyCode)
        {
            NativeMethods.keybd_event((Byte)KeyCode, 0x45, NativeContansts.KEF_EXTENDEDKEY | NativeContansts.KEF_KEYUP, (UIntPtr)0);
        }

        /// <summary>
        /// 模擬按下並釋放指定的按鍵。
        /// </summary>
        public static void KeyPress(Keys KeyCode)
        {
            KeyDown(KeyCode);
            KeyUp(KeyCode);
        }
    }

分享