使用 Sikuli 截取远程桌面的屏幕截图

时间:2021-04-01 06:07:58

标签: remote-desktop sikuli psexec

我有以下 Java 代码用于捕获屏幕截图:

import org.sikuli.script.Screen;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;

public class Screenshot{
                public static void main(String[] args) throws IOException
                {
                                Screen screen = new Screen();
                                ImageIO.write(screen.capture(screen).getImage(), "png", new File("D:\\myScreen.png"));
                }
}

我使用以下代码编译这段代码:

javac -classpath .;sikulixapi-2.0.4.jar Screenshot.java

并运行它:

java -classpath .;sikulixapi-2.0.4.jar Screenshot

我尝试远程运行它,使用

psexec \\xx.xx.xxx.xxx -w "D:\Sikuli" java -classpath .;sikulixapi-2.0.4.jar Screenshot

结果不是远程屏幕的图片,而是黑色背景。

有什么办法可以让这个工作吗?

1 个答案:

答案 0 :(得分:1)

要检查您是否主要可以通过这种方式拍摄远程屏幕,您可以使用 SikuliX 内部使用的内容:java.awt.Robot

试试这个:

import java.awt.*;
...
BufferedImage img = new Robot().createScreenCapture(new Rectangle(0, 0, 500, 500))

...然后你的编码将图像存储在某处。

如果图像是黑色的,则说明远程系统上的显示器设置有问题。它必须是非无头的(真实屏幕)并且机器人必须可以访问解锁的屏幕。

来自 SikuliX 的 RaiMan