Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Java Programming >> .

Come catturare una schermata da un sistema remoto usando Java

C'è una semplice applicazione Java che è possibile utilizzare per inviare uno screenshot corrente su Internet. Potete trovare questo programma utile se avete bisogno di gestire più computer , se si possiede un business e si vuole controllare l' uso del computer dei vostri dipendenti , o se si desidera monitorare l' uso del computer dei vostri figli . Si prevede la creazione di due classi Java : ScreenServer.java e ScreenClient.java . Tuttavia, essere sicuri di controllare l'avviso in fondo alla pagina prima di mettere l'applicazione in uso . Istruzioni
1

Aprite il vostro editor di testo preferito , e immediatamente salvare il documento vuoto come " ScreenServer.java . " Questa è la parte del programma che deve essere eseguito sul sistema remoto . Si rimane in attesa di una connessione su una porta arbitraria e inviare le dimensioni dello schermo e dati su quella porta. Questo esempio utilizza " 5494 ", come il porto , ma qualsiasi numero di porta farà , a condizione che non sia in conflitto con un altro servizio in esecuzione sul computer . Naturalmente , avrete bisogno di avere accesso diretto al computer remoto a un certo punto , al fine di mettere questo programma su di esso e rimetterlo in esecuzione
2

Incollare il codice riportato di seguito nel " ScreenServer " : .

import java.net * , .

import java.awt * , .

import java.awt.Image * , .

importazione java.io . * ;

importazione javax.imageio.ImageIO ;

public class ScreenServer {

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

robot robot = new robot ( ) ;
schermo BufferedImage

;

while (true ) {

ServerSocket server = new ServerSocket ( 5494 ) ;

Socket client = server.accept ();

dimensione Rectangle = new Rectangle ( Toolkit.getDefaultToolkit ( ) getScreenSize () . ) ; schermo


= robot.createScreenCapture ( size);

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 out = new ObjectOutputStream ( baseOut ) ;

ImageIO.write ( schermo , " png " , new File ( " orig_screen.png "));

out.writeObject ( size);

for (int x = 0; x < rgbData.length ; x + + ) codice.
3

Aprire un nuovo documento in un editor di testo , e il nome " ScreenClient.java . " Questo è il programma che verrà eseguito in locale . Si collega semplicemente al computer remoto all'indirizzo specificato e salva i dati dei pixel che riceve per il disco rigido in formato PNG
4

Incollare il codice riportato di seguito e salvare il lavoro : .

import java.net * , .

import java.awt * , .

import java.awt.Image * , .

import java.io. * ;

importazione javax.imageio.ImageIO ;

public class ScreenClient {

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

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

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

size = Rettangolo ( 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 ( ) ;

schermo 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 ( schermo , " png " , nuovo File ( " screen.png ")); }


}

 

Programmazione © www.354353.com