【发布时间】:2014-04-08 11:11:31
【问题描述】:
我正在用 KINECT 制作一个 c++ 应用程序。我基本上想用它来发送 alt f4 来关闭当前的焦点窗口而不是我的应用程序,就像你通常在键盘上按下 alt f4 一样。提前致谢。
我已经在使用 VkKeyScanA 输入其他几个键,但我找不到 alr+f4 的键码
【问题讨论】:
标签: c++ kinect sendkeys simulate
我正在用 KINECT 制作一个 c++ 应用程序。我基本上想用它来发送 alt f4 来关闭当前的焦点窗口而不是我的应用程序,就像你通常在键盘上按下 alt f4 一样。提前致谢。
我已经在使用 VkKeyScanA 输入其他几个键,但我找不到 alr+f4 的键码
【问题讨论】:
标签: c++ kinect sendkeys simulate
有不止一种方法可以做到这一点。模拟击键是你应该做的最后一件事,因为你不能很好地控制进程的键盘状态,所以很难做到正确。
第一个是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。
【讨论】: