我正在尝试使用 Sendkeys
来模拟 Windows
启动键,但我尝试过的选项都不起作用,有人知道如何实现吗?
代码
[System.Runtime.InteropServices.DllImport("user32.dll")]
private Thread thrTyping;
private void startThread()
{
ThreadStart ts = new ThreadStart(sendKeys);
thrTyping = new Thread(ts);
thrTyping.Start();
}
private void sendKeys()
{
// TEST 1
Thread.Sleep(5000);
SendKeys.SendWait("(^)"+"{ESC}");
// TEST 2
Thread.Sleep(5000);
SendKeys.SendWait("{LWin}");
}
最佳答案
使用keybd_event相反:
private const int KEYEVENTF_EXTENDEDKEY = 0x1;
private const int KEYEVENTF_KEYUP = 0x2;
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
private static void PressKey(byte keyCode)
{
keybd_event(keyCode, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(keyCode, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
List of KeyCodes (你要找的那个是 0x5B - left win key)
关于c# - Windows 开始键的 Sendkeys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24132775/