【问题标题】:how to send a keyboard keystroke to active window? [duplicate]如何将键盘击键发送到活动窗口? [复制]
【发布时间】:2017-08-05 10:39:07
【问题描述】:

我想将键盘击键发送到活动窗口,例如使用 python 的键 A 或 Backspace。我该怎么做?

我也知道活动窗口坐标(如果有帮助的话)。

【问题讨论】:

标签: python-3.x winapi


【解决方案1】:

执行此操作的 Windows API 方法是 SendInput,它是 User32 库的一部分。它将键盘和鼠标输入发送到前​​台/活动窗口。 SendInput 使用 INPUT 结构,具体称为 KEYBDINPUT。它可以选择发送多个 INPUT,因为第一个参数详细说明:

n 个输入 [in]

Type: UINT
The number of structures in the pInputs array.

在此question 的答案中指定了在 Python 中使用 SendInput 的示例。

您使用MapVirtualKey 函数将虚拟键码映射到扫描码

【讨论】:

  • SendInput - 但是,正确答案。 SendMessage 不应真正讨论,除非它是在向窗口发送 WM_CHAR 或 WM_KEYDOWN/WM_KEYUP 消息的上下文中。但是这些类型的黑客只会造成更多的麻烦......因为并非所有窗口都以相同的方式响应输入。我建议调整你的答案,只说 SendInput 函数。
猜你喜欢
  • 1970-01-01
  • 2011-06-05
  • 2021-07-28
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多