如何使用C++和Windows API将击键/消息发送到Windows 7

How to send keystrokes/messages to Windows 7 with C++ and Windows API?

本文关键字:Windows 消息 C++ 何使用 API      更新时间:2023-10-16

例如,程序是否可以向Windows 7(运行该程序的操作系统)发送按键或消息,以模拟用户在键盘上物理按下Windows键的效果;在C++中,使用Windows API?

SendInput函数已经存在很长时间了,应该可以满足您的需要。

初学者经常尝试将密钥发送到窗口,因为他们认为这是最简单的解决方案。肯定很容易回答说这是可能的。通常,在开发人员投入大量时间后,事情就会变得复杂起来。它很复杂的一个原因是,您必须确保控件(文本框或其他什么)具有焦点。然后你必须做一些事情来处理数据,比如按下按钮。你可能需要阅读窗口来决定下一步该做什么。

另一种选择是提升一个级别,尝试通过访问控件及其父级(窗口)来控制应用程序。换句话说,你可以直接将数据作为字符串放入文本框,而不是在其中键入键。你可以向wndow发送BN_CLICKED通知消息,而不是向按钮发送回车键来点击按钮。你应该想办法做那种事。这是完全可能的。

熟悉Spy++;它是一个可以真正帮助您探索控件和窗口等的工具。

您可以使用SendInput进行任何模拟输入,但是,您受应用程序完整性级别的约束(即,您不能将输入注入级别高于您的应用程序)。