最近有业务需求,需要模拟键盘输入,所以了解了一下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);