最近有業務需求,需要模擬鍵盤輸入,所以了解了一下C#中keybd_event函數的用法。該函數能夠產生WM_KEYUP或WM_KEYDOWN消息,即可以觸發鍵盤事件。
函數引用如下:
[DllImport("user32.dll", EntryPoint = "keybd_event")] public static extern void keybd_event( byte bVk, byte bScan, int dwFlags, //0: DOWN, 2: UP int dwExtraInfo //Default: 0 ); }
Keybd_event()共有四個參數。
第一個為按鍵的虛擬鍵值,可以使用枚舉值System.Windows.Forms.Keys。
第二個參數為掃描碼,一般不用設置,用0代替就行。
第三個參數為選項標志,如果為keydown則置"0",如果為keyup則設成"2"。
第四個參數一般也是置0即可。
'A'的虛擬鍵值為65,所以可以用如下代碼實現模擬單擊'A'鍵。
keybd_event(65, 0, 0, 0); keybd_event((byte)Keys.A, 0, 2, 0);