-
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"));
}
}