问题标签 [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.
java - Java- 应用程序背后的屏幕截图
有没有办法捕获屏幕但不显示应用程序本身。我知道如何最小化或使框架不可见,但这必须非常快地完成,因为它会在每一秒内发生很多(至少每秒一次)。我希望它看起来像 Windows Vista/7 中的放大镜。(应用程序可以看到自己的背后。)
java - 以编程方式运行 Swing 应用程序(远程类)
我有一个稍微复杂的情况,我没有尝试自动运行的 Swing 应用程序的源代码(或编译的类)。
我将尝试在此应用程序上执行一系列任务,按一些按钮,单击某些部分等。我希望能够以编程方式执行此操作。
我遇到的每一个 Swing 调试器/机器人都希望您拥有正在启动的类,并且调试器与该类一起启动。
这里的问题是我的应用程序是由我启动一个 JNLP 应用程序启动的,该应用程序对我进行身份验证(我必须输入用户名和密码),然后在远程服务器上运行一堆类。Swing 应用程序启动。
我希望现在可以附加到 Swing 应用程序并以编程方式运行它。抱歉,这似乎太复杂了,但这就是这里的场景......
也许根本没有办法做到这一点,如果是这样的话,请告诉我......
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()
可以改为使用。
由于未能对此事获得任何有用的见解,我选择问你们。
java - WM_PAINT、Java 和捕获隐藏窗口
首先声明一下,我是一名 Java 程序员,对 Windows API 几乎一无所知。所以请多多包涵。
我的目标是使用 Java 来捕获隐藏的窗口。我的目标平台是 Windows。我确实了解Robot
该类用于捕获屏幕的可见部分。经过一番浏览,我发现了这三个链接,它们似乎是相关的:
- http://www.support.teamdev.com/thread/1930
- http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.ui/2006-02/msg00204.html
- http://www.fengyuan.com/article/wmprint.html
JxCapture 和冯远的文章一样复杂。我的问题是这个,如果这个论坛的大师可以帮助我找到一个合理的解决方案。JxCapture 中建议的方法似乎并不过分复杂。有什么提示吗?执行此操作的 Visual Basic 脚本或一些 C# 代码将是一个很好的起点。
我相信当窗口被隐藏时,如果我向它发送一个按键事件或鼠标按下事件,它会强制它重新绘制自己,从而允许它自己被捕获java.awt.Robot
。那是一种错觉,它不起作用。
另一方面,JxCapture 线程中的消息来自 2006 年;是不是 Sun 从那时起就包含了这样的功能而我只是不知道?
java - java获取任何对象的屏幕坐标
我正在尝试使用 java 来获取 DOM 中任何对象的屏幕坐标。
例如,我想编写代码来获取按钮名称()或 Web 或 Windows 应用程序中的任何对象)并返回 x、y 坐标,以便我可以使用 java 机器人对该按钮执行鼠标操作。
我不想自己获取坐标,因为我希望它更具动态性,因此可以即时将当前坐标传递给机器人并与对象进行交互。
任何想法都会很棒
java - 如何使 java.awt.Robot 响应鼠标拖动事件?
我正在编写一个类,它允许其他计算机上的用户控制 JPanel 的内容,以便在共享显示系统中使用。java.awt.Robot 将允许我执行鼠标单击和键盘输入,但它没有mouseDragged(MouseEvent evt)
方法。我的客户有clientMouseReleased
(和Pressed
)方法作为MouseAdapter
侦听器的一部分,如下所示:
其中remoteDesktop
是一个包含 java.awt.Robot 的类,它在客户端调用的方法中执行一个Robot.mouseMove
和Robot.mouseRelease
(或Robot.mousePress
)。我希望能够以mouseDragged
相同的方式编写,即,像这样:
java - 如何获取窗口的背面图像?
我们正在为视障人士构建一个程序,目的是替换屏幕的某些功能,如颜色、形状或其他。目前,我们有一个全屏窗口,我们抓取屏幕快照(通过机器人 java 库)并将其复制到全屏窗口。当我们尝试截取下一张截图时,显然我们得到的图像是指当前的全屏窗口。我们需要得到全屏窗口的背面,经过广泛的研究,我们没有成功找到这样做的方法。
您是否知道一个库或一种方法来实现这一点,可能(但不一定)在 java 中?
java - Java awt.Robot:发送带有位置的密钥,例如。右移或右控制
我想用这个java.awt.Robot
类来实现一个虚拟键盘。我想知道是否有一种方法可以使用该keyPress(int)
方法发送带有键位置(左或右)的键码。如果将 a 添加KeyListener
到 awt 元素,则 aKeyEvent
由触发ctrl或shift具有信息,如果它是左按钮或右按钮。
文档告诉:
具有多个关联物理键的键码(例如
KeyEvent.VK_SHIFT
,可能表示左或右 shift 键)将映射到左键”。
但是真的没有办法发送一个right shiftpressed吗?某些应用程序(例如 VirtualBox)需要那些正确的按钮(当然,您可以配置这些应用程序,但虚拟键盘没有选项)。
那么......有没有办法在Robot
课堂上做到这一点?是否有另一种方法可以在 Java 中发送更具体的关键事件?
java - Java打印屏幕程序
我正在尝试Robot
在 Java 中使用来制作打印屏幕的图像文件。到目前为止,我有:
但我似乎无法让它创建文件。
java - Java - 机器人按键问题
我正在尝试从我的 Java 代码发送击键(如虚拟键盘),但我遇到了一些问题。它在普通应用程序(例如,记事本、浏览器等)上完美运行,但不适用于游戏(全屏或窗口模式)。
这是我正在使用的剥离代码:
如何解决这个问题?