Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert

Dom22

Neues Mitglied
Hallo,

Ich muss für die Uni ein Programm schreiben (hiwi-job)... wurde aber weder eingewiesen noch sonst irgendetwas und habe das in dem Umfang noch nie gemacht.

Ich weiß jetzt nicht wie schwierig das ist, aber könnte vielleicht einer mir sagen wie man das denn macht ?

also 1) Bildschirm auslesen
2) die while schleife die so lang aktiv ist bis sich die pixel des bildschirms für 10 sekunden nicht mehr ändern.
3)Das Email senden auf eine bestimmte mail (sollte variabel sein)
 
i
Code:
package MD5.MainClass;

import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.DigestInputStream;
import java.security.MessageDigest;

import javax.imageio.ImageIO;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;


public class Fix
{
   
   
    //
   
    public static byte[] createChecksum(String filename) throws Exception {
           InputStream fis =  new FileInputStream(filename);

           byte[] buffer = new byte[1024];
           MessageDigest complete = MessageDigest.getInstance("MD5");
           int numRead;

           do {
               numRead = fis.read(buffer);
               if (numRead > 0) {
                   complete.update(buffer, 0, numRead);
               }
           } while (numRead != -1);

           fis.close();
           return complete.digest();
       }

       public static String getMD5Checksum(String filename) throws Exception {
           byte[] b = createChecksum(filename);
           String result = "";

           for (int i=0; i < b.length; i++) {
               result += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
           }
           return result;
       }
   
    //
    int formatter = 0;

    public void robo() throws Exception
    {
        formatter++;
       
        Calendar now = Calendar.getInstance();
        Robot robot = new Robot();
        BufferedImage screenShot = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
        ImageIO.write(screenShot, "JPG", new File("./"+formatter + ".jpg"));
        //
      
       
 
        //
        System.out.println(getMD5Checksum(formatter +".jpg"));

       
       
        if(formatter != 1) {
        String last = formatter -1 + ".jpg";
       
        String lasthash = getMD5Checksum(last);
       
       
        if(lasthash.equals(getMD5Checksum(formatter + ".jpg"))) {
            System.out.println("Gleich");
           
            //Hier der Code für die email
           
        }
        }
        //
       
       

    }

    public static void main(String[] args) throws Exception
    {
        Fix s2i = new Fix();
        while(1==1)
        {
            s2i.robo();
            Thread.sleep(10000);
        }
    }
}
 

Neue Themen


Zurück
Oben