如何使用keybd_event()模拟Ctrl + Alt + H?以下代码不起作用:
keybd_event((byte)Convert.ToInt32(Keys.Control), (byte)MapVirtualKey(Convert.ToInt32(Keys.Control), 0), 0, 0);
keybd_event((byte)Convert.ToInt32(Keys.Alt), (byte)MapVirtualKey(Convert.ToInt32(Keys.Alt), 0), 0, 0);
keybd_event((byte)Keys.H, (byte)MapVirtualKey(Convert.ToInt32(Keys.H), 0), 0, 0);
keybd_event((byte)Keys.H, (byte)MapVirtualKey(Convert.ToInt32(Keys.H), 0), KEYEVENTF_KEYUP, 0);
keybd_event((byte)Convert.ToInt32(Keys.Alt), (byte)MapVirtualKey(Convert.ToInt32(Keys.Alt), 0), KEYEVENTF_KEYUP, 0);
keybd_event((byte)Convert.ToInt32(Keys.Control), (byte)MapVirtualKey(Convert.ToInt32(Keys.Control), 0), KEYEVENTF_KEYUP, 0);
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用SendKeys执行此操作:
SendKeys.Send("^%H");
http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx
修改强> (见下面的评论......)
您希望在桌面上启动已使用一组特定热键设置的Windows快捷方式。在这种情况下CTRL + ALT + H.您想编写一个将执行该快捷键组合的应用程序。
为了实现这一点,您的桌面必须具有“焦点”。这意味着没有其他窗户应该启动。因此,启动应用程序,最小化所有其他窗口,然后按应用程序上的按钮。以下是按钮背后的代码:
private void button1_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
SendKeys.SendWait("^%h");
}
这将最小化当前窗口,从而将焦点放在桌面上。然后它会将CTRL,ALT和H键发送到桌面,这将启动你的快捷方式。