我需要创建一个程序,将数字从窗口复制到java文件。 1 由于这些数字不在网络浏览器中,因此我无法在常规网站上扫描数据。但是,我可以单击该数字并按Ctrl + C复制它们。我基本上需要能够在屏幕上读取某些给定坐标的内容,或者可以点击数字并将其复制并粘贴到文本文件中的内容。
答案 0 :(得分:0)
由于(可能)您可以使用Ctrl+C
复制文本,因此您可以使用系统剪贴板。您可以使用此Stack Overflow Answer中的说明来读取系统剪贴板。
依靠系统剪贴板,您可以解决阅读屏幕某一部分的问题,并进行一些字符识别。
答案 1 :(得分:0)
The java.awt.Robot
class可用于执行单击和按键操作。 The java.awt.datatransfer.Clipboard
class可用于读取剪贴板。需要进口:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.KeyEvent;
import java.awt.event.InputEvent;
import java.io.IOException;
示例代码(请注意,AWTException
,UnsupportedFlavorException
和IOException
必须由方法标题中的throws Throwable
处理:
// Things that need to be set up only once.
final Robot robot = new Robot();
final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
// If you need a loop, start it here.
for (;;) {
// Click at (x, y).
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
// Press Ctrl+C.
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_C);
robot.delay(100);
robot.keyRelease(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.delay(100);
// Read clipboard.
final String clipboardContents = (String) clipboard.getData(DataFlavor.stringFlavor);
// Work with clipboard contents.
System.out.println(clipboardContents);
}
至于将复制的数据放入文本文件中,您希望如何做到这一点取决于您:
Robot
点击其他窗口并按Ctrl + V. 感谢: