java - 拦截并修改发往第三方应用程序的鼠标事件?

标签 java mouseevent

如何在鼠标事件(x/y 坐标、加速度等)到达第三方应用程序之前通过 Java 拦截和修改它们?

应用程序是预先已知的(因此,如果有帮助的话,类似“java myApp 3rdPartyApp”的内容是可能的)。请注意,第三方应用程序可能非常占用资源。

我想我要问的是如何制作一个Java应用程序作为真实鼠标事件和第三方应用程序之间的层,以便第三方应用程序接收修改后的事件而不是原始事件由操作系统发送?这对于 Java 来说是可能的吗?

最佳答案

您有 2 个纯 Java 解决方案。

首先,您可以连接到 AWT 事件队列并获取所有 UI 事件:Toolkit.getDefaultToolkit().getSystemEventQueue() 不幸的是,我不确定您可以修改这些事件,但您可以阅读它们并且可以模拟事件。

其次,您可以在第三方应用程序上创建透明窗口,您可以在其中捕获所有 UI 事件,然后使用 java.awt.Robot 模拟它们。 请参阅here如何创建透明窗口。我尝试了这个方法,发现效果很好。

关于java - 拦截并修改发往第三方应用程序的鼠标事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645011/

相关文章:

java - 'sequenceNumber' header 值必须是整数。但它很长

java - 在android中解析xml文件

java - 防止 robot.mouseMove 生成​​ MouseEvent?

java - 禁用/覆盖 JTree 鼠标按下/单击处理的正确方法

opencv - 在图像 opencv 上绘制点

java - 如何在 JSF (Primefaces) 中以编程方式设置咆哮生命周期?

java - 从JFrame应用程序到Applet

javascript - 鼠标悬停在子元素上,而不是父元素上

Java/Swing JViewport 鼠标拖动时跳转

java - 从 Activity 目录获取帐户到期日期