View Full Version : [JAVA] - Prelevare informazioni dal registro di sistema
Don[ITA]
14-10-2007, 14:18
Salve a tutti...Vorrei sapere se e come sia possibile prelevare dei valori dal registro di sistema (devo prelevare l'installPath di un' applicazione, quindi una String) e passarla come parametro al main del mio programma java...
grazie in anticipo
variabilepippo
14-10-2007, 14:27
Potresti usare la classe Preferences (http://www.rgagnon.com/javadetails/java-0421.html).
Don[ITA]
14-10-2007, 17:35
E come funziona???? :mc:
variabilepippo
14-10-2007, 17:39
Hai cliccato sul link "classe Preferences" del post precedente?
Don[ITA]
15-10-2007, 18:40
Chiedo venia...non avevo notato fosse un link :doh:
Don[ITA]
15-10-2007, 21:29
Grazie mille č stato utilissimo!!!!!
Gia che ci sono, casomai dovesse servire a qualcun'altro vi inserisco il codice della classe che ho usato per leggere un valore dal registro:
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
public class CatchRegDate {
/**
*
* la variabile path_da_cui_leggere contiene il percorso del dato da prelevare dal registro
* ed č strutturata nel seguente modo:
* "\"HKCU -> indica HKEY_CURRENT_USER
* in alternativa potete usare: HKLM -> HKEY_LOCAL_MACHINE
* HKCR -> HKEY_CLASSES_ROOT
* HKU -> HKEY_USER
* HKCC -> HKEY_CURRENT_CONFIG
* \\...percorso completo del dato...\" -> dovrete inserire il percorso completo del dato da
* leggere ricordandovi le \\ tra una cartella e
* l'altra e la \ finale
* /v ...nome dato"; -> č il nome del dato da leggere
*
* Nell'esempio sottostante il programma vi ritornerā il dato Personal ovvero il path della
* cartella Documenti
*
* Chiamando il metodo getRegDate() vi verrā ritornato il valore del dato che desiderate
*
*/
private static final String path_da_cui_leggere = "\"HKCU\\Software\\Microsoft\\Windows\\Explorer\\Shell Folders\" /v Personal";
private static final String REGQUERY_UTIL = "reg query ";
private static final String REGSTR_TOKEN = "REG_SZ";
private static final String INSTALL_PATH = REGQUERY_UTIL + path_da_cui_leggere;
public static String getRegDate() {
try {
Process process = Runtime.getRuntime().exec(/*PERSONAL_FOLDER_CMD*/INSTALL_PATH);
StreamReader reader = new StreamReader(process.getInputStream());
reader.start();
process.waitFor();
reader.join();
String result = reader.getResult();
int p = result.indexOf(REGSTR_TOKEN);
if (p == -1)
return null;
return result.substring(p + REGSTR_TOKEN.length()).trim();
}
catch (Exception e) {
return null;
}
}
}
class StreamReader extends Thread {
private InputStream is;
private StringWriter sw;
StreamReader(InputStream is) {
this.is = is;
sw = new StringWriter();
}
public void run() {
try {
int c;
while ((c = is.read()) != -1)
sw.write(c);
}
catch (IOException e) { ; }
}
String getResult() {
return sw.toString();
}
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.