November 1
C'è una semplice applicazione Java che è possibile utilizzare per inviare uno screenshot corrente su Internet. Si possono trovare questo programma utile se è necessario gestire più computer, se si possiede un business e desidera monitorare l'utilizzo del computer dei vostri dipendenti, o se si desidera monitorare l'utilizzo del computer dei vostri figli. Si prevede la creazione di due classi Java: ScreenServer.java e ScreenClient.java. Tuttavia, assicurati di controllare l'avviso nella parte inferiore della pagina prima di mettere l'applicazione in uso.
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. Esso rimane in attesa di una connessione su una porta arbitraria e inviare le dimensioni dello schermo e dati attraverso tale porta. Questo esempio utilizza "5494" come la porta, ma qualsiasi numero di porta lo farà, a condizione che non sia in conflitto con un altro servizio in esecuzione sul computer. Naturalmente, è necessario avere un accesso diretto al computer remoto ad un certo punto, al fine di mettere questo programma su di esso e avviarlo in esecuzione.
2 Incollare il seguente codice nel "ScreenServer":
import java.net. *;
import java.awt. *;
importare java.awt.Image. *;
import java.io. *;
import javax.imageio.ImageIO;
public class ScreenServer {
public static void main(String[] args) throws Exception {
Robot robot = new Robot ();
schermo BufferedImage;
while (true) {
Server ServerSocket = new ServerSocket (5494);
Socket client = server.accept ();
dimensione Rectangle = new Rectangle (Toolkit.getDefaultToolkit () getScreenSize ().);
schermo = robot.createScreenCapture (dimensione);
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 (dimensione);
for (int x = 0; x & lt; rgbData.length; x ++) {
out.writeInt (rgbData [x]);
}
out.flush ();
server.close ();
client.close ();
out.close ();
baseOut.close ();
}
}
}
Salvare il 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 l'hard disk in formato PNG.
4 Incollare il codice seguente, e salvare il lavoro:
import java.net. *;
import java.awt. *;
importare java.awt.Image. *;
import java.io. *;
import javax.imageio.ImageIO;
public class ScreenClient {
public static void main(String[] args) throws Exception {
server socket = Socket nuove (args [0], 5494);
ObjectInputStream a = new ObjectInputStream (server.getInputStream ());
size = rettangolo (Rectangle) in.readObject ();
int [] rgbData = new int [(int) (size.getWidth () * size.getHeight ())];
for (int x = 0; x & lt; 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", new File ( "screen.png"));
}
}