问题标签 [awtrobot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2250 浏览

java - Java- 应用程序背后的屏幕截图

有没有办法捕获屏幕但不显示应用程序本身。我知道如何最小化或使框架不可见,但这必须非常快地完成,因为它会在每一秒内发生很多(至少每秒一次)。我希望它看起来像 Windows Vista/7 中的放大镜。(应用程序可以看到自己的背后。)

0 投票
1 回答
471 浏览

java - 以编程方式运行 Swing 应用程序(远程类)

我有一个稍微复杂的情况,我没有尝试自动运行的 Swing 应用程序的源代码(或编译的类)。

我将尝试在此应用程序上执行一系列任务,按一些按钮,单击某些部分等。我希望能够以编程方式执行此操作。

我遇到的每一个 Swing 调试器/机器人都希望您拥有正在启动的类,并且调试器与该类一起启动。

这里的问题是我的应用程序是由我启动一个 JNLP 应用程序启动的,该应用程序对我进行身份验证(我必须输入用户名和密码),然后在远程服务器上运行一堆类。Swing 应用程序启动。

我希望现在可以附加到 Swing 应用程序并以编程方式运行它。抱歉,这似乎太复杂了,但这就是这里的场景......

也许根本没有办法做到这一点,如果是这样的话,请告诉我......

0 投票
2 回答
8317 浏览

java - Robot.delay(int) 与 Thread.sleep(long)

我有一个程序,其唯一目的是java.awt.Robot在无限循环中驱动 a 直到满足退出条件。

机器人快速连续执行许多动作,这需要它们之间的标准 UI 延迟。为此,我使用java.awt.Robot.setAutoDelay(int ms),它似乎正是为此目的而设计的。

然而,在其他时候,我需要插入任意长的延迟才能完成操作。我似乎可以在使用java.awt.Robot.delay(int ms)or之间进行选择java.lang.Thread.sleep(long ms),并且很好奇它们之间的区别是什么,以及我应该使用哪个。

我的直觉是把我所有的操作都放在同一个“地方”,并使用java.awt.Robot.delay(int ms). 然而,想了一会儿之后,我认为这java.awt.Robot.delay(int ms)会在机器人的操作堆栈上完成一个操作,如果这些是我在无限循环中的唯一延迟,我可能会很快且不必要地生成一个荒谬的大机器人的事件队列。

那时,我检查了 的 APIjava.awt.Robot.delay(int ms),它告诉我以下内容:

休眠指定的时间。要捕获任何InterruptedException发生的 s,Thread.sleep()可以改为使用。

由于未能对此事获得任何有用的见解,我选择问你们。

0 投票
0 回答
1118 浏览

java - WM_PAINT、Java 和捕获隐藏窗口

首先声明一下,我是一名 Java 程序员,对 Windows API 几乎一无所知。所以请多多包涵。

我的目标是使用 Java 来捕获隐藏的窗口。我的目标平台是 Windows。我确实了解Robot该类用于捕获屏幕的可见部分。经过一番浏览,我发现了这三个链接,它们似乎是相关的:

JxCapture 和冯远的文章一样复杂。我的问题是这个,如果这个论坛的大师可以帮助我找到一个合理的解决方案。JxCapture 中建议的方法似乎并不过分复杂。有什么提示吗?执行此操作的 Visual Basic 脚本或一些 C# 代码将是一个很好的起点。

我相信当窗口被隐藏时,如果我向它发送一个按键事件或鼠标按下事件,它会强制它重新绘制自己,从而允许它自己被捕获java.awt.Robot。那是一种错觉,它不起作用。

另一方面,JxCapture 线程中的消息来自 2006 年;是不是 Sun 从那时起就包含了这样的功能而我只是不知道?

0 投票
2 回答
2413 浏览

java - java获取任何对象的屏幕坐标

我正在尝试使用 java 来获取 DOM 中任何对象的屏幕坐标。

例如,我想编写代码来获取按钮名称()或 Web 或 Windows 应用程序中的任何对象)并返回 x、y 坐标,以便我可以使用 java 机器人对该按钮执行鼠标操作。

我不想自己获取坐标,因为我希望它更具动态性,因此可以即时将当前坐标传递给机器人并与对象进行交互。

任何想法都会很棒

0 投票
1 回答
1361 浏览

java - 如何使 java.awt.Robot 响应鼠标拖动事件?

我正在编写一个类,它允许其他计算机上的用户控制 JPanel 的内容,以便在共享显示系统中使用。java.awt.Robot 将允许我执行鼠标单击和键盘输入,但它没有mouseDragged(MouseEvent evt)方法。我的客户有clientMouseReleased(和Pressed)方法作为MouseAdapter侦听器的一部分,如下所示:

其中remoteDesktop是一个包含 java.awt.Robot 的类,它在客户端调用的方法中执行一个Robot.mouseMoveRobot.mouseRelease(或Robot.mousePress)。我希望能够以mouseDragged相同的方式编写,即,像这样:

0 投票
1 回答
229 浏览

java - 如何获取窗口的背面图像?

我们正在为视障人士构建一个程序,目的是替换屏幕的某些功能,如颜色、形状或其他。目前,我们有一个全屏窗口,我们抓取屏幕快照(通过机器人 java 库)并将其复制到全屏窗口。当我们尝试截取下一张截图时,显然我们得到的图像是指当前的全屏窗口。我们需要得到全屏窗口的背面,经过广泛的研究,我们没有成功找到这样做的方法。

您是否知道一个库或一种方法来实现这一点,可能(但不一定)在 java 中?

0 投票
1 回答
2205 浏览

java - Java awt.Robot:发送带有位置的密钥,例如。右移或右控制

我想用这个java.awt.Robot类来实现一个虚拟键盘。我想知道是否有一种方法可以使用该keyPress(int)方法发送带有键位置(左或右)的键码。如果将 a 添加KeyListener到 awt 元素,则 aKeyEvent由触发ctrlshift具有信息,如果它是左按钮或右按钮。

文档告诉:

具有多个关联物理键的键码(例如KeyEvent.VK_SHIFT,可能表示左或右 shift 键)将映射到左键”。

但是真的没有办法发送一个right shiftpressed吗?某些应用程序(例如 VirtualBox)需要那些正确的按钮(当然,您可以配置这些应用程序,但虚拟键盘没有选项)。

那么......有没有办法在Robot课堂上做到这一点?是否有另一种方法可以在 Java 中发送更具体的关键事件?

0 投票
2 回答
5877 浏览

java - Java打印屏幕程序

我正在尝试Robot在 Java 中使用来制作打印屏幕的图像文件。到目前为止,我有:

但我似乎无法让它创建文件。

0 投票
3 回答
3007 浏览

java - Java - 机器人按键问题

我正在尝试从我的 Java 代码发送击键(如虚拟键盘),但我遇到了一些问题。它在普通应用程序(例如,记事本、浏览器等)上完美运行,但不适用于游戏(全屏或窗口模式)。

这是我正在使用的剥离代码:

如何解决这个问题?