如何使用C++和Windows API将击键/消息发送到Windows 7
How to send keystrokes/messages to Windows 7 with C++ and Windows API?
例如,程序是否可以向Windows 7(运行该程序的操作系统)发送按键或消息,以模拟用户在键盘上物理按下Windows键的效果;在C++中,使用Windows API?
SendInput函数已经存在很长时间了,应该可以满足您的需要。
初学者经常尝试将密钥发送到窗口,因为他们认为这是最简单的解决方案。肯定很容易回答说这是可能的。通常,在开发人员投入大量时间后,事情就会变得复杂起来。它很复杂的一个原因是,您必须确保控件(文本框或其他什么)具有焦点。然后你必须做一些事情来处理数据,比如按下按钮。你可能需要阅读窗口来决定下一步该做什么。
另一种选择是提升一个级别,尝试通过访问控件及其父级(窗口)来控制应用程序。换句话说,你可以直接将数据作为字符串放入文本框,而不是在其中键入键。你可以向wndow发送BN_CLICKED通知消息,而不是向按钮发送回车键来点击按钮。你应该想办法做那种事。这是完全可能的。
熟悉Spy++;它是一个可以真正帮助您探索控件和窗口等的工具。
您可以使用SendInput进行任何模拟输入,但是,您受应用程序完整性级别的约束(即,您不能将输入注入级别高于您的应用程序)。
相关文章:
- 通过JNA发送用户定义的Windows消息
- 什么是窗口最大化/最小化/恢复的WM Windows消息
- 注册以在 MFC 中发出 Win32 事件信号时接收 Windows 消息
- 在控制台应用程序中处理空的windows消息队列
- 处理Windows消息,以便我的应用程序正确响应
- 相对于 3D 应用程序中的 Windows 消息循环的计时错误
- infine windows消息循环-c++
- 如何使用QCoreApplication::winEventFilter处理Windows消息
- Sleep() in Windows 消息循环
- 奇怪的Windows消息序列WM_KEYDOWN/WM_KEYUP,同时按VK_MENU(Alt键)
- Windows 消息过程的函数指针数组
- winapi - 未记录的 Windows 消息0x0313稳定
- 来自 GetMessage 的 Windows 消息 9
- 如何正确处理来自MSFTEDIT_CLASS(RichEdit)控件的Windows消息
- 无限循环中的Windows消息泵
- Windows消息传递-获取非客户端区域的设备上下文的各种方法
- 处理来自子类的windows消息
- C++GetAsyncKeyState和GetCursorPos与Windows消息传递的比较
- 正在获取windows消息名称
- 使用Windows消息循环的回调实现