Il ya une application Java simple que vous pouvez utiliser pour envoyer une capture d'écran actuel sur Internet. Vous pouvez trouver ce programme utile si vous avez besoin de gérer plusieurs ordinateurs, si vous possédez une entreprise et que vous souhaitez surveiller l'utilisation de l'ordinateur de vos employés, ou si vous voulez contrôler l'utilisation de l'ordinateur de vos enfants . Elle prévoit la création de deux classes Java : ScreenServer.java et ScreenClient.java . Cependant, n'oubliez pas de consulter l'avertissement au bas de la page avant de mettre l'application en service. Instructions
1
Ouvrez votre éditeur de texte préféré et enregistrer immédiatement le document vide comme " ScreenServer.java . " C'est la partie du programme qui doit être exécuté sur le système distant . Il sera à l'écoute pour une connexion sur un port arbitraire et envoyer les dimensions de l'écran et les données sur ce port. Cet exemple utilise « 5494 » comme port , mais n'importe quel numéro de port va faire, à condition de ne pas en conflit avec un autre service s'exécutant sur l'ordinateur . Naturellement, vous aurez besoin d'avoir un accès direct à l'ordinateur distant à un moment donné afin de mettre ce programme sur elle et commencer à faire fonctionner
2
Collez le code suivant dans le " ScreenServer ": .
import java.net * ; .
import java.awt * ; .
java.awt.Image d'importation * ; .
importation java.io . * ;
importation javax.imageio.ImageIO ;
public class ScreenServer {
public static void main ( string [] args ) throws Exception {
< p > Robot Robot = new Robot ();
écran BufferedImage
;
while ( true) {
serveur ServerSocket = new ServerSocket ( 5494 ) ;
socket client = server.accept ();
taille Rectangle = new Rectangle ( Toolkit.getDefaultToolkit () getScreenSize (). ) ; écran
= robot.createScreenCapture (taille ) ;
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 ( écran , " png" , new File ( " orig_screen.png "));
out.writeObject (taille ) ;
< p > for (int x = 0; x < rgbData.length ; x + +) votre code.
3
Ouvrez un nouveau document dans votre éditeur de texte et nommez-le " ScreenClient.java . " C'est le programme qui sera exécuté localement. Il se connecte simplement à l'ordinateur distant à l'adresse indiquée et enregistre les données de pixels qu'il reçoit sur le disque dur au format PNG
4
Collez le code ci-dessous et enregistrez votre travail : .
< p > import java.net * ; .
import java.awt * ; .
java.awt.Image d'importation * ; .
import java.io. *; Photos
javax.imageio.ImageIO d' importation;
public class ScreenClient {
public static void main ( string [] args ) throws Exception {
serveur Socket
= new Socket ( args [0] , 5494 ) ;
ObjectInputStream dans = new ObjectInputStream ( server.getInputStream ());
taille du rectangle = ( 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 ( ) ;
écran BufferedImage de
= 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 ( écran , " png" , nouveau File (" screen.png ")); }
}