Det er en enkel Java-program som du kan bruke til å sende en gjeldende skjermbilde over Internett . Du kan finne dette programmet nyttig hvis du trenger for å administrere flere datamaskiner , hvis du eier en bedrift og ønsker å overvåke databruk av dine ansatte , eller hvis du ønsker å overvåke databruk av dine barn. Det innebærer etableringen av to Java- klasser: ScreenServer.java og ScreenClient.java . Men husk å sjekke advarselen nederst på siden før du setter programmet i bruk . Instruksjoner
en
Åpne din foretrukne teksteditor , og umiddelbart lagre tomt dokument som " ScreenServer.java . " Dette er den delen av programmet som må kjøre på det eksterne systemet . Det vil lytte etter en tilkobling på en vilkårlig port og sende dimensjonene på skjermen og data over den porten. Dette eksemplet bruker " 5494 " som port, men et portnummer vil gjøre , forutsatt at det ikke kommer i konflikt med en annen tjeneste som kjører på datamaskinen . Selvsagt vil du trenger å ha direkte tilgang til den eksterne datamaskinen på et tidspunkt for å sette dette programmet på den og starte den kjører
2
Lim inn følgende kode inn i " ScreenServer " : .
import java.net * ; .
import java.awt * ; .
import java.awt.image * ; .
import java.io . * ;
import javax.imageio.ImageIO ;
public class ScreenServer {
public static void main ( String [] args ) throws Exception {
< p > robot robot = new robot ();
BufferedImage skjermen,
while ( true) {
ServerSocket server = new ServerSocket ( 5494 ) ;
Socket klient = server.accept ();
rektangel size = nye rektangel ( Toolkit.getDefaultToolkit ( ) getScreenSize ( ) . ) ;
skjermen = robot.createScreenCapture ( størrelse);
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 ut = new ObjectOutputStream ( baseOut ) ;
ImageIO.write (skjerm , " png " , new File ( " orig_screen.png "));
out.writeObject ( størrelse);
< p > for ( int x = 0 ; x < rgbData.length ; x + + ) koden din .
3
Åpne et nytt dokument i en teksteditor , og gi den navnet " ScreenClient.java . " Dette er programmet som skal kjøres lokalt. Den kobles ganske enkelt til den eksterne datamaskinen på adressen angitt og lagrer pixel dataene den mottar til harddisken i PNG -format
4
Lim inn følgende kode , og lagre arbeidet : .
< p> import java.net * ; .
import java.awt * ; .
import java.awt.image * ; .
import java.io. * ;
import javax.imageio.ImageIO ;
public class ScreenClient {
public static void main ( String [] args ) throws Exception {
Socket server = new Socket ( args [ 0 ] , 5494 ) ;
ObjectInputStream i = new ObjectInputStream ( server.getInputStream ( ));
rektangel size = ( rektangel) 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 ( ) ;
BufferedImage skjerm = 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 (skjerm , " png " , new File ( " screen.png "));
}
}