package com.rf.fileCrack.utils; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; public class CPUSerial { public static String getCPUSerial() { String result = ""; try { File file = File.createTempFile("tmp", ".vbs"); file.deleteOnExit(); FileWriter fw = new java.io.FileWriter(file); StringBuilder sb = new StringBuilder("On Error Resume Next \r\n\r\n"); sb.append("strComputer = \".\" \r\n"); sb.append("Set objWMIService = GetObject(\"winmgmts:\" _ \r\n"); sb.append(" & \"{impersonationLevel=impersonate}!\\\\\" & strComputer & \"\\root\\cimv2\") \r\n"); sb.append("Set colItems = objWMIService.ExecQuery(\"Select * from Win32_Processor\") \r\n "); sb.append("For Each objItem in colItems\r\n " + " Wscript.Echo objItem.ProcessorId \r\n "); sb.append(" exit for ' do the first cpu only! \r\n"); sb.append("Next"); fw.write(sb.toString()); fw.close(); Process p = Runtime.getRuntime().exec("cscript //NoLogo //T:10 " + file.getPath()); BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = input.readLine()) != null) { result += line; } input.close(); file.delete(); } catch (Exception e) { e.fillInStackTrace(); } return result; } }