Dúvidas sobre Computação ?
Vamos tentar tirar dúvidas e trocar conhecimento com todos, sobre qualquer assunto relacionado a computação

terça-feira, 24 de agosto de 2010

Acesso a informações da máquina cliente com Applet

1 – uso de PrivilegedAction (o método abaixo cria um arquivo no lado cliente de uma aplicação para executá-lo e capturar a informação do serial do HD)


public static String getHDSerial() {
        String retorno = (String) AccessController.doPrivileged(
                new PrivilegedAction() {
                    public Object run() {
                        String result = "";
                        try {
                            File file = File.createTempFile("tmp", ".vbs");
                            file.deleteOnExit();
                            FileWriter fw = new java.io.FileWriter(file);
                            String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n" + "Set colDrives = objFSO.Drives\n" + "Set objDrive = colDrives.item(\"" + IdentificadorApplet.drive + "\")\n" + "Wscript.Echo objDrive.SerialNumber";
                            fw.write(vbs);
                            fw.close();
                            Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
                            BufferedReader input =
                                    new BufferedReader(new InputStreamReader(p.getInputStream()));
                            String line;
                            while ((line = input.readLine()) != null) {
                                result += line;
                            }
                            input.close();
                        } catch (Exception e) {
                            result = e.getMessage();
                        }
                        if (result.trim().length() < 1 || result == null) {
                            result = "NO_DISK_ID";
                        }
                        return result.trim();
                    }
                });
        return retorno;
    }



2 – O Applet deve está assinado para que seja possível a execução.(Uma maneira muito simples para isso é o uso de KeyToolUI)


2.1 – Crie um JKS para assinar o Applet, isso é possível com KeyToolUI.
2.2 – Assine o arquivo .jar gerado, referente ao Applet.

2 comentários:

  1. muito legal estava procurando isso faz um tempo!!!
    vlw!!

    ResponderExcluir
  2. Salvou minha vida. coloca o passo-a-passo desse keytoolui aê, vai

    ResponderExcluir