如何在不触及系统级别的任何输入设备的情况下触发按键或鼠标单击事件?

Jav*_*ram 5 events

当其他应用程序或浏览器的屏幕上出现颜色时,如何触发自动按键或鼠标单击事件?

Cod*_*aos 11

这很大程度上取决于你想要什么.你想发送密钥吗?

  • 你的申请
  • 另一个固定的应用
  • 模拟全局按键

全局模拟密钥

所有这些都会导致针对特定应用程序和活动窗口更改的问题.

  • SendKeys将消息发送到活动应用程序.它是一个高级函数,它接受一个编码一系列键的字符串.

  • keybd_event是非常低级别并注入全局按键.在大多数情况下SendKeys更容易使用.

  • mouse_event 模拟鼠标输入.

  • SendInput取代这些功能.它更灵活,但使用起来有点困难.

发送到特定窗口

使用固定目标窗口时,根据窗口的工作方式发送消息可能会起作用.但由于这不会更新所有状态,因此可能并不总是有效.但是你没有改变窗口焦点的竞争条件,这是值得的.

  • WM_CHAR 在基本多语言平面中发送一个字符(16位)
  • WM_UNICHAR 发送支持整个unicode范围的字符
  • WM_KEYDOWNWM_KEYUP发送键,这些键将通过键盘布局转换为字符.

我的建议是在针对特定窗口/应用程序时首先尝试使用消息,并且只有在失败时尝试使用其中一个较低级别的解决方案.