在C ++中模拟ALT + F4键按下

时间:2014-04-08 11:11:31

标签: c++ kinect sendkeys simulate

我正在使用KINECT创建一个c ++应用程序。我基本上想用它来发送alt f4来关闭当前的焦点窗口而不是我的应用程序,就像你通常按下键盘上的alt f4一样。提前谢谢。

我已经使用VkKeyScanA输入一些其他键但我找不到alr + f4的密钥代码

1 个答案:

答案 0 :(得分:2)

这样做的方法不止一种。模拟击键是你应该做的最后一件事,很难做到正确,因为你不能很好地控制过程的键盘状态。

第一个是GetForegroundWindow + SendMessage,用于发送WM_SYSCOMMAND,SC_CLOSE命令。这是Alt + F4在默认窗口过程处理时所执行的操作。如果程序没有覆盖WM_SYSCOMMAND处理,则默认发送WM_CLOSE。

如果您创建自己的窗口,那么您应该倾向于避免尝试查找前景窗口。使用APPCOMMAND_CLOSE命令将WM_APPCOMMAND发送到您自己的窗口。您对DefWindowProc()的调用将命令通过多个层转发到shell。

如果您正在考虑采用更有力的方式,例如WM_CLOSE,请查看Raymond Chen的recent blog post