我知道如何使用SendKeys()函数,但如果我想模拟按住ESC键大约5秒钟怎么办?
我知道如何使用SendKeys()函数,但如果我想模拟按住ESC键大约5秒钟怎么办?
keybd_event
,并按住 Escape 键 5 秒钟,然后释放它:[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
keybd_event(VK_ESCAPE, 0, 0, 0) // KEY_DOWN
System.Threading.Thread.Sleep(5000);
keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0) // KEY_UP
KEYEVENTF_KEYUP
应该是 2
或者 0x02
。如果你在按住 A 的时候将应用程序线程休眠,那么它将不会响应 keybd_event(因此在你的应用程序中只会写入一个 A
)。可以使用定时器或创建另一个线程来解决。 - fardjad