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

Simulate ALT+F4 key press in C++

本文关键字:ALT+F4 C++ 模拟      更新时间:2023-10-16

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

我已经使用VkKeyScanA输入了一些其他键,但我只是找不到alr+f4 的键代码

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

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

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

如果你正在考虑一种更有力的方式,比如WM_CLOSE,那么一定要查看Raymond Chen最近的博客文章。