无法通过SendMessage / PostMessage发送组合键“SHFT + F3”:vc ++

时间:2013-11-01 10:00:48

标签: windows winapi

我想通过Visual C ++中的SendMessagePostMessage向其他应用程序发送按键事件。

我知道我可以使用SendMessage/PostMessage模拟 F3 这样的单键。 但是,我不知道如何使用SendMessage/PostMessage发送像 SHIFT + F3 这样的组合键。

我被卡住了。

1 个答案:

答案 0 :(得分:1)

SendMessage / PostMessage不适合发送按键。见You can't simulate keyboard input with PostMessage

  

..即使您设法将输入消息发布到目标窗口的队列中,也不会更新键盘移位状态。当窗口后面的代码调用GetKeyState函数或GetAsyncKeyState函数时,它将看到“真实”的移位状态,而不是您发布的消息已生成的虚假状态。

     

SendInput函数用于将输入注入Windows。如果您使用该功能,那么至少会正确报告换档状态。

正如您所看到的,Raymond已经为您提供了解决方案:改为使用SendInput