Er is een eenvoudige Java- applicatie die je kunt gebruiken om een actuele screenshot te sturen via het internet . U kunt dit programma nuttig vinden als u meerdere computers beheren , als u een eigen bedrijf en wilt controleren het computergebruik van uw werknemers , of als u wilt controleren het computergebruik van uw kinderen . Het gaat om de oprichting van twee Java-klassen : ScreenServer.java en ScreenClient.java . Vergeet echter niet om de waarschuwing aan de onderkant van de pagina te controleren alvorens de applicatie in gebruik . Instructies 1 Open uw favoriete tekstverwerker , en het lege document onmiddellijk opslaan als " ScreenServer.java . " Dit is het deel van het programma dat moet worden uitgevoerd op het externe systeem . Het zal luisteren voor een aansluiting op een willekeurige poort en stuur de afmetingen en gegevens scherm over die poort . In dit voorbeeld wordt " 5494 ", zoals de haven , maar elke poortnummer zal doen , mits het niet in strijd is met een andere dienst die draait op de computer . Uiteraard moet u direct toegang tot de externe computer op een bepaald punt te hebben om dit programma op te zetten en start het draaien 2 Plak de volgende code in de " ScreenServer " : . < br 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 ) op Twitter gooit Uitzondering { robot robot = new robot ( ) ; BufferedImage scherm ; while (true ) { ServerSocket server = new ServerSocket ( 5494 ) ; Socket client = server.accept ( ) ; Rectangle size = new Rectangle ( Toolkit.getDefaultToolkit ( ) getScreenSize ( ) . ) ; scherm = robot.createScreenCapture ( grootte) ; 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 ( ) op ; ObjectOutputStream out = new ObjectOutputStream ( baseOut ) ; ImageIO.write ( scherm , " png " , new File ( " orig_screen.png " ) ) ; out.writeObject ( grootte) ; for ( int x = 0 ; x < rgbData.length ; x + + ) uw code . 3 Open een nieuw document in uw tekstverwerker , en noem maar op " ScreenClient.java . " Dit is het programma dat lokaal wordt uitgevoerd . Het verbindt gewoon naar de externe computer op het opgegeven adres en slaat de pixel gegevens die het ontvangt van de harde schijf in PNG-formaat 4 Plak de volgende code , en sla je werk : . 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 ) gooit Uitzondering { Socket server = new Socket ( args [ 0 ] , 5494 ) ; ObjectInputStream in = new ObjectInputStream ( server.getInputStream ( ) ) ; Rectangle size = ( rechthoek ) in.readObject ( ) ; < br > int [ ] rgbData = new int [ ( int ) ( size.getWidth ( ) * size.getHeight ( ) ) ] ; voor ( int x = 0 ; x < rgbData.length , x + + ) { rgbData [ x ] = in.readInt ( ) ; } in.close ( ) op ; server.close ( ) ; BufferedImage scherm = 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 ( scherm , " png " , nieuwe bestand ( " screen.png " ) ) ; } }
|