Tratando de obtener el serial de un USB evitando utilizar la api de windows, en java, googleando encontre un ejm
acceder a registros de windows desde java. Modifique y resultó esto, el problema es que los registros no se actualizan cuando quitas un USB
bueno quizá alguien tenga alguna sugerencia.
import java.io.*;
public class RegQuery {
private static final String REGQUERY_UTIL
= "reg query "; private static final String REGSTR_TOKEN
= "REG_SZ"; private static final String REGDWORD_TOKEN
= "REG_DWORD";
private static final String SERIAL_USB
= REGQUERY_UTIL
+ "HKLM\\SYSTEM\\CurrentControlSet\\Control\\DeviceClasses\\{a5dcbf10-6530-11d2-901f-00c04fb951ed}\\";
//+ " /v DeviceInstance";
public static String getSERIALS_USB
() { try {
StreamReader reader = new StreamReader(process.getInputStream());
int p = -1;
reader.start();
process.waitFor();
reader.join();
String result
= reader.
getResult();
cad = result.split("\n");
ret = "";
for(int i=0; i < cad.length; i++) {
p = cad[i].indexOf("USB");
if (p != -1 ) {
cad[i] = cad[i].substring(p);
su = cad[i].split("#");
ret += su[2]+"\n";
}
}
return ret;
}
return null;
}
}
static class StreamReader
extends Thread {
this.is = is;
}
public void run() {
try {
int c;
while ((c = is.read()) != -1)
sw.write(c);
}
}
return sw.toString();
}
}
public static void main
(String s
[]) {
System.
out.
println("Seriales :\n" + getSERIALS_USB
()); }
}
Saludos.