Ciao a tutti !!!
Sono giorni che sto combattendo con una applet che dovrebbe eseguire una serie di screenshot ma , ogni volta mi va in errore :
Exception in thread "Thread-12" java.security.AccessControlException: access denied (java.awt.AWTPermission createRobot)
at java.security.AccessControlContext.checkPermission (Unknown Source)
at java.security.AccessController.checkPermission(Unk nown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.awt.Robot.checkRobotAllowed(Unknown Source)
at java.awt.Robot.init(Unknown Source)
at java.awt.Robot.<init>(Unknown Source)
at mainApplet.scattaFoto(mainApplet.java:60)
at mainApplet.run(mainApplet.java:42)
at java.lang.Thread.run(Unknown Source)
Ho provato a firmare l'applet ma continua ad andare in errore
Questo è il CODICE:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.applet.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class mainApplet extends Applet implements Runnable
{
int i=0;
Thread threadFoto=null;
boolean continua = false;
boolean chiamato = false;
public void start() {
System.out.println("1");
if(chiamato) continua= true;
threadFoto = new Thread(this);
threadFoto.start();
}
public void stop()
{
System.out.println("2");
continua = false;
threadFoto.interrupt();
threadFoto=null;
}
public void run()
{
System.out.println("3");
while (continua)
{
i++;
System.out.println("3a");
try {
scattaFoto(i);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void startFoto() {
System.out.println("1");
chiamato = true;
start();
}
public void scattaFoto(int i) throws AWTException, IOException{
BufferedImage screencapture = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSiz e()) );
Point p= MouseInfo.getPointerInfo().getLocation();
BufferedImage cursor= ImageIO.read(new File("cursor.gif"));
screencapture.createGraphics().drawImage(cursor, p.x, p.y, null);
ImageIO.write(screencapture, "jpg", new File("c:/image/screencapture"+i+".png"));
}
}
Grazie in anticipo .