Hay una sencilla aplicación Java que puede utilizar para enviar una captura de pantalla actual a través de Internet . Usted puede encontrar este programa útil si usted necesita para administrar varios equipos, si usted es dueño de un negocio y quieren controlar el uso de las computadoras de sus empleados , o si desea controlar 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úrate de revisar la advertencia en la parte inferior de la página antes de poner la aplicación en uso. Instrucciones
1
Abre tu editor de texto preferido , y ahorrar de inmediato el documento vacío " 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 los datos en ese puerto . En este ejemplo se usa " 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 equipo. Naturalmente, usted tendrá que tener acceso directo a la computadora remota en algún momento con el fin de poner este programa en él y empezar a hacerlo funcionar
2
Pega el siguiente código en el " ScreenServer ": .
import java.net * ; .
import java.awt * ; .
java.awt.image import * , .
importación java.io . * ;
importación javax.imageio.ImageIO ;
public class ScreenServer {
void (String [] args ) public static throws Exception {
< p > Robot robot = new robot ( ) ;
pantalla BufferedImage
;
while ( true) {
servidor ServerSocket = new ServerSocket ( 5494 ) ;
Socket client = server.accept ();
tamaño Rectangle = 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 a = new ObjectOutputStream ( baseOut ) ;
ImageIO.write (pantalla, "png " , el nuevo archivo ( " orig_screen.png "));
out.writeObject (tamaño ) ;
< p > for (int x = 0 ; x < rgbData.length ; x + +) su código .
3
Abra un nuevo documento en el editor de texto , y el nombre de " ScreenClient.java . " Este es el programa que se ejecutará localmente. 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
Pega el siguiente código y guardar el trabajo : .
< p> import java.net * ; .
import java.awt * ; .
java.awt.image import * , .
import java.io. * ;
javax.imageio.ImageIO importación;
public class ScreenClient
{ public static void main ( String [] args ) throws Exception {
servidor Socket
= new Socket ( args [ 0 ] , 5494 ) ;
ObjectInputStream en = new ObjectInputStream ( server.getInputStream ());
tamaño del rectángulo = ( Rectangle) in.readObject ();
int [ ] rgbData = new int [( int) ( size.getWidth () * size.getHeight ()) ] ;
for (int x = 0 ; x < rgbData.length ; x + + ) {
rgbData [x ] = in.readInt (); }
in.close ();
server.close ( ) ;
pantalla BufferedImage = 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 " , nuevo archivo ( " screen.png ")); }
}