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.