Tecnología

Inicio

Cómo capturar una captura de pantalla de un sistema remoto utilizando Java

Hay una sencilla aplicación Java que se puede utilizar para enviar una captura de pantalla actual a través de Internet. Es posible que este programa es útil si usted necesita para administrar varios equipos, si usted es dueño de un negocio y desea supervisar el uso de los ordenadores de sus empleados, o si desea supervisar el uso de la computadora de sus hijos. Se trata de la creación de dos clases de Java: ScreenServer.java y ScreenClient.java. Sin embargo, asegúrese de comprobar la advertencia en la parte inferior de la página antes de poner la aplicación en uso.

Instrucciones

1 Abra su editor de texto preferido, y ahorrar de inmediato el documento vacío como "ScreenServer.java." Esta es la parte del programa que debe ejecutarse en el sistema remoto. Se escuchará una conexión en un puerto arbitrario y enviar las dimensiones de la pantalla y datos a través de ese puerto. En este ejemplo se utiliza "5494" como el puerto, pero cualquier número de puerto va a hacer, siempre y cuando no entre en conflicto con otro servicio que se ejecuta en el ordenador. Naturalmente, tendrá que tener acceso directo a la computadora remota en algún momento con el fin de poner este programa en él y ponerlo en marcha corriendo.

2 Pegar el código siguiente en el "ScreenServer":

import java.net. *;

import java.awt. *;

importar java.awt.image. *;

import java.io. *;

javax.imageio.ImageIO importación;

public class {ScreenServer

public static void main(String[] args) throws Exception {

robot robot = nuevo robot ();

BufferedImage pantalla;

while (true) {

ServerSocket servidor = new ServerSocket (5494);

Socket de cliente = server.accept ();

el tamaño del rectángulo = new Rectangle (Toolkit.getDefaultToolkit () getScreenSize ().);

pantalla = robot.createScreenCapture (tamaño);

int [] rgbData = new int [(int) (size.getWidth () * size.getHeight ())];

screen.getRGB (0,0, (int) size.getWidth (), (int) size.getHeight (), rgbData, 0, (int) size.getWidth ());

OutputStream baseOut = client.getOutputStream ();

ObjectOutputStream cabo = new ObjectOutputStream (baseOut);

ImageIO.write (pantalla, "png", el nuevo archivo ( "orig_screen.png"));

out.writeObject (tamaño);

for (int x = 0; x & lt; rgbData.length; x ++) {

out.writeInt (rgbData [x]);

}

out.flush ();

server.close ();

client.close ();

out.close ();

baseOut.close ();

}

}

}

Guarde su código.

3 Abrir un nuevo documento en su editor de texto, y el nombre de "ScreenClient.java." Este es el programa que se ejecutará a nivel local. Simplemente se conecta al ordenador a distancia en la dirección especificada y guarda los datos de pixel que recibe en el disco duro en formato PNG.

4 Pegue el código siguiente y guarde su trabajo:

import java.net. *;

import java.awt. *;

importar java.awt.image. *;

import java.io. *;

javax.imageio.ImageIO importación;

public class {ScreenClient

public static void main(String[] args) throws Exception {

servidor de socket = new Socket (args [0], 5494);

ObjectInputStream en ObjectInputStream = new (server.getInputStream ());

el tamaño del rectángulo = (rectángulo) in.readObject ();

int [] rgbData = new int [(int) (size.getWidth () * size.getHeight ())];

for (int x = 0; x & lt; rgbData.length; x ++) {

rgbData [x] = in.readInt ();

}

cercar();

server.close ();

BufferedImage pantalla = new BufferedImage ((int) size.getWidth (), (int) size.getHeight (), BufferedImage.TYPE_INT_ARGB);

screen.setRGB (0,0, (int) size.getWidth (), (int) size.getHeight (), rgbData, 0, (int) size.getWidth ());

ImageIO.write (pantalla, "png", el nuevo archivo ( "screen.png"));

}

}