packageteste;importjava.io.IOException;importjava.io.InputStream;importjava.io.StringWriter;importjavax.swing.JOptionPane;/** * @author Oleg Ryaboy, based on work by Miguel Enriquez */publicclassWindowsReqistry{/** * * @param location path in the registry * @param key registry key * @return registry value or null if not found */publicstaticfinalStringreadRegistry(Stringlocation,Stringkey){try{// Run reg query, then read output with StreamReader (internal class)Processprocess=Runtime.getRuntime().exec("reg query "+'"'+location+"\" /v "+key);StreamReaderreader=newStreamReader(process.getInputStream());reader.start();process.waitFor();reader.join();Stringoutput=reader.getResult();// Output has the following format:// \n<Version information>\n\n<key>\t<registry type>\t<value>if(!output.contains("\t")){returnnull;}// Parse out the valueString[]parsed=output.split("\t");returnparsed[parsed.length-1];}catch(Exceptione){returnnull;}}staticclassStreamReaderextendsThread{privateInputStreamis;privateStringWritersw=newStringWriter();;publicStreamReader(InputStreamis){this.is=is;}publicvoidrun(){try{intc;while((c=is.read())!=-1)sw.write(c);}catch(IOExceptione){}}publicStringgetResult(){returnsw.toString();}}publicstaticvoidmain(String[]args){// Sample usageStringvalue=WindowsReqistry.readRegistry("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\"+"Explorer\\Shell Folders","Startup");JOptionPane.showMessageDialog(null,value);System.out.println(value);}}