最近发现个有趣的问题,我们如何向一个窗口发送 按键指令?
嗯,我稍微总结了下,大概有如下几种:
1:System.Windows.Forms.SendKeys. Send / SendWait
示例:
SendKeys.SendWait("^{A}"); // 模拟键:CTRL + A
组合键:
Ctrl = ^
Shift = +
Alt = %
2:keybd_event
声明:
[System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint="keybd_event")]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo) ;
示列:
keybd_event (VK_CONTROL, 0, 0, 0);
keybd_event (VK_A, 0, 0, 0);
keybd_event (VK_A, 0, #KEYEVENTF_KEYUP, 0);
keybd_event (VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 模拟键:CTRL + A
看了两大两种,但又没有对单一窗口,即使不是活动窗口也能投递按键消息呢?
答案肯定是有的,我稍微整合了一点