【发布时间】:2012-02-08 08:49:42
【问题描述】:
程序是否可以向 Windows 7(运行它的操作系统)发送击键或消息,以模拟用户在键盘上物理按下 Windows 键的效果,例如;在 C++ 中,使用 Windows API?
【问题讨论】:
标签: c++ windows winapi sendmessage sendkeys
程序是否可以向 Windows 7(运行它的操作系统)发送击键或消息,以模拟用户在键盘上物理按下 Windows 键的效果,例如;在 C++ 中,使用 Windows API?
【问题讨论】:
标签: c++ windows winapi sendmessage sendkeys
SendInput 函数已经存在很长时间了,应该可以满足您的需要。
【讨论】:
初学者经常尝试将密钥发送到窗口,因为他们认为这是最简单的解决方案。肯定很容易回答说有可能。通常,在开发人员投入大量时间后,它会变得复杂。它复杂的一个原因是因为您必须确保控件(文本框或其他)具有焦点。然后你必须做一些事情来处理数据,比如按下一个按钮。您可能需要阅读该窗口来决定下一步该做什么。
另一种方法是升级并尝试通过访问控件及其父级(窗口)来控制应用程序。所以换句话说,您可以将数据直接作为字符串放入文本框中,而不是通过在其中键入键。您可以向 wndow 发送 BN_CLICKED 通知消息,而不是向按钮发送回车键来单击按钮。你应该寻找方法来做那种事情。完全有可能。
熟悉 Spy++;它是一个可以真正帮助您探索控件和窗口等的工具。
【讨论】:
您可以使用SendInput 进行任何模拟输入,但是,您受应用程序完整性级别的约束(也就是说,您不能将输入注入到比您的级别更高的应用程序中)。
【讨论】: