首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 遊戲手柄程式開發——API 篇(三)下:鍵盤模擬 keybd_event 封裝與成品展示

     編輯:關於C語言

鍵盤模擬 API

[DllImport("user32.dll")]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
  • bVk:虛擬鍵碼,對應 System.Windows.Forms.Keys
  • dwFlags 組合:KEYEVENTF_KEYDOWN (按下)、KEYEVENTF_KEYUP (釋放)、KEYEVENTF_EXTENDEDKEY (擴充鍵)

封裝輔助列舉與方法

[Flags]
public enum KeyboardEvents {
    None = 0x0, KeyDown = 0x1, KeyUp = 0x2
}

public static void SendKeyEvent(Keys key, KeyboardEvents events) {
    if ((events & KeyboardEvents.KeyDown) == KeyboardEvents.KeyDown)
        keybd_event((byte)key, 0, KEYEVENTF_KEYDOWN, 0);
    if ((events & KeyboardEvents.KeyUp) == KeyboardEvents.KeyUp)
        keybd_event((byte)key, 0, KEYEVENTF_KEYUP, 0);
}

使用範例

  • 模擬按下 A:SendKeyEvent(Keys.A, KeyboardEvents.KeyDown)
  • 模擬按下並釋放 A:SendKeyEvent(Keys.A, KeyboardEvents.KeyDown | KeyboardEvents.KeyUp)

成品截圖

手柄模擬鍵盤軟體介面

使用方式:設定各手柄按鈕對應鍵盤鍵碼(點擊對應欄位按鍵盤按鍵即可),啟用模擬,最小化視窗後切換至遊戲即可用手柄操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved