`
Dead_knight
  • 浏览: 1201015 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
752c8642-b795-3fe6-946e-a4e845bffdec
Spring Securi...
浏览量:240209
33caa84e-18a6-3036-a82b-6e2106a4de63
clojure专题
浏览量:48920
E17ca077-44df-3816-a3fe-471c43f6e1e5
WebLogic11g
浏览量:236876
社区版块
存档分类
最新评论

用Java Robot实现屏幕截取、远程监控

阅读更多
   远程监控或远程教学,常常需要对计算机的屏幕进行截取,由于屏幕截取是比较接近操作系统的操作。Java JDK1.4 的Robot对象可以完成对"屏幕"像素的拷贝,完成屏幕图像截取操作。Java应用程序中可以直接调用此对象,完成对特定应用程序的屏幕截取,如果将此功能配合网络,便可以轻而易举地实现远程服务器屏幕的监视。

   在Java JDK1.4 中提供的"机器人"Robot类用于产生与本地操作系统有关的底层输入、测试应用程序运行或自动控制应用程序运行。Robot类提供了一个方法:createScreenCapture(..),可以直接将全屏幕或某个屏幕区域的像素拷贝到一个BufferedImage对象中,我们只需要将该对象写入到一个图像文件之中,就完成了屏幕到图像的拷贝过程。示例如下:
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

public class ScreenCaptureUtil {

    private String fileName; //文件的前缀
   
private String defaultName = "GuiCamera";

static int serialNum = 0;

private String imageFormat; //图像文件的格式

private String defaultImageFormat="png";

Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

/****************************************************************
   * 默认的文件前缀为GuiCamera,文件格式为PNG格式
   * The default construct will use the default
   * Image file surname "GuiCamera",
   * and default image format "png"
****************************************************************/
public ScreenCaptureUtil() {
    fileName = defaultName;
    imageFormat = defaultImageFormat;
    }
 
/****************************************************************
   * @param s the surname of the snapshot file
   * @param format the format of the  image file,
   * it can be "jpg" or "png"
   * 本构造支持JPG和PNG文件的存储
****************************************************************/
public ScreenCaptureUtil(String s,String format) {
    fileName = s;
    imageFormat = format;
}

/****************************************************************
   * 对屏幕进行拍照
   * snapShot the Gui once
****************************************************************/
public void snapShot()
{
    try
    {
        //拷贝屏幕到一个BufferedImage对象screenshot
        BufferedImage screenshot = (new Robot()).createScreenCapture(new
            Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
        serialNum++;
        //根据文件前缀变量和文件格式变量,自动生成文件名
        String name = fileName + String.valueOf(serialNum) + "." + imageFormat;
        File f = new File(name);
        System.out.print("Save File " + name);
        //将screenshot对象写入图像文件
        ImageIO.write(screenshot, imageFormat, f);
        System.out.print("..Finished!\n");
    }
    catch (Exception ex) {
      System.out.println(ex);
    }
}

public static void main(String[] a)
{
ScreenCaptureUtil ScreenCapture = new ScreenCaptureUtil("d:\\Hello", "jpg");
ScreenCapture.snapShot();
}
}

   上述代码旨在"抛砖引玉",如果将此ScreenCaptureUtil增加多线程和网络功能,可以实现远程监控网络上另一台计算机屏幕。
分享到:
评论

相关推荐

    基于JAVA CS远程监控系统软件的实现(源代码).zip 远程监控;Java Robot;屏幕截取;Java Socket

    基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础...

    通过java socket实现屏幕网络监控

    在这个场景中,我们讨论的是如何使用Java Socket来实现实时的屏幕监控功能,即服务端能够远程查看客户端的屏幕内容,这样的功能在远程协助、监控或者演示场景中非常有用。 首先,我们需要了解Java Socket的基本概念...

    Java Robot对象实现服务器屏幕远程监视.doc

    在Windows操作系统下,通常这类功能由C++或Visual Basic等语言实现,但Java 1.4引入的`Robot`类使得Java程序员也能轻松地实现屏幕截取。 **1. Robot类的基本概念** `Robot`类位于`java.awt`包中,它提供了一种方式...

    基于JAVA CS远程监控系统软件的实现(源代码+WORD论文文档论文).zip

    基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础...

    基于JAVA CS远程监控系统软件的实现毕业设计(源代码+毕业论文)

    【作品名称】:基于JAVA CS远程监控系统软件的实现【毕业设计】(源代码+毕业论文) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 ...

    java写的计算机远程屏幕监控和远程截屏代码

    3. 截取屏幕:使用`Robot`对象的`createScreenCapture`方法截取指定区域的屏幕图像。 ```java BufferedImage screenCapture = robot.createScreenCapture(new Rectangle(0, 0, width, height)); ``` 4. 处理图像:...

    H2003031251_李丹_基于JAVA CS远程监控系统软件的实现.doc

    该系统使用 Java 网络编程和 Java 图形编程,实现了远程监控的多种功能,如获取被监控端机器屏幕变化、上传和下载文件、模拟鼠标和键盘、执行 DOS 命令、远程关机和重启计算机等。 在这篇论文中,作者首先介绍了...

    java实现人工智能化屏幕监控窗口

    通过组合这两个类,可以实现屏幕监控和机器人操作。 二、Java实现人工智能化屏幕监控窗口的实现步骤 1. 创建一个JFrame窗口,用于显示屏幕监控的结果。 2. 使用Toolkit类获取屏幕的大小,并创建一个矩形区域,用于...

    基于JAVA的CS远程监控系统软件的设计与实现.doc

    Java Robot类是实现屏幕截取的关键,它允许程序模拟用户的输入行为,如鼠标移动、点击和键盘输入。而Java Socket则提供了在网络间建立可靠、低级连接的接口,为数据交换提供了基础。 【系统设计与实现】 2.1 系统...

    java远程监控功能的实现

    总之,通过Java的Socket通信和Robot类,我们可以构建一个基本的远程监控系统,实现屏幕共享、远程操作等功能。这样的系统对于远程协助、设备管理或者自动化测试等领域有着广泛的应用。在实际开发中,还需要考虑安全...

    基于JAVA CS远程监控系统软件的实现(源代码+说明文档).zip

    基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础...

    JAVA-web远程屏幕监控系统

    - **屏幕截取库**:如Robot类在Java AWT库中可以用来捕捉本地系统的屏幕图像。 - **图像编码与传输**:为了在网络上传输,需要将屏幕图像编码为JPEG或PNG等格式,减少数据量。可以使用Java的ImageIO类进行编码。 ...

    Java技术实现跨平台的远程屏幕监视.pdf

    Java语言提供了Robot类,用于实现屏幕截屏。Robot类的createScreenCapture()方法可以实现屏幕截屏。 4. 屏幕大小的获取 Java的Toolkit类的getScreenSize()方法可以获取屏幕的大小。 5. 数据的压缩处理 屏幕截图...

    毕业设计-基于JAVA CS远程监控系统软件的实现(源代码+论文)

    基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础...

    java做一个简单的远程监控系统

    本文将详细介绍如何利用Java中的`Robot`类来实现远程监控的功能,并给出相关的代码示例。 #### 实现原理 远程监控系统主要由两部分组成:被控端和主控端。实现远程监控的基本原理包括: 1. **被控端通过`Robot`类...

    基于JAVA CS远程监控系统软件的实现.doc

    总结,基于Java C/S的远程监控系统软件实现了远程屏幕监控、文件管理及控制功能,充分利用了Java的跨平台特性和网络编程能力。在实际应用中,这样的系统可以极大地提高远程管理的效率,降低运维成本,同时保证了数据...

    Java_cs监控系统软件的实现

    系统通过Java Robot类捕获远程计算机的屏幕图像,实现屏幕实时监控。同时,文件的上传和下载功能则依赖于TCP/IP协议和文件流的处理,用户可以对远程计算机的硬盘文件进行操作。此外,模拟鼠标和键盘输入是通过发送...

    编程实战:基于JAVA的远程监控系统软件的设计与实现(源代码+文档).zip

    本系统是利用类java.awt.robot中的屏幕截取和鼠标、键盘自动控制功能,然后加上网络传输功能来完成来完成截屏和远程控制的。 2.2.2 系统运行概述 1.启动被监控端,打开指定的UDP端口号。用于读取命令。 2.被监控端...

    Java远程监控系统设计及功能介绍.doc

    在Java中,实现远程监控的关键技术包括Socket编程、InputStream和OutputStream的使用、Robot类以及图像处理,还有UDP通信。 1. **Socket和ServerSocket**: - `Socket` 和 `ServerSocket` 类是Java网络编程的基础...

    java 毕业设计 答辩 论文

    其次,Java Robot类在实现屏幕截取功能中扮演了关键角色。Robot类允许程序模拟用户输入,如键盘和鼠标操作,同时也能够捕获屏幕图像,使得远程监控不仅限于命令的执行,还能观察到被监控端的实时视觉反馈。这对于...

Global site tag (gtag.js) - Google Analytics