Lecture du registre windows

Contenu du snippet

Une classe qui permet d'obtenir la valeur d'une clé du registre windows. Dans le source il s'agit du chemin d'installation Acrobat Reader 7.
Le code n'utilise pas JNI ou wfc que du 100% Java

Source / Exemple :


import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;

public class RegPathAdobe {

	private static final String REGQUERY_UTIL = "reg query ";

	private static final String REGSTR_TOKEN = "REG_SZ";

	// quand on connait la valeur de la clé
	// private static final String ADOBE_NAME_CMD = REGQUERY_UTIL +
	// "\"HKLM\\Software\\Adobe\\Acrobat Reader\\7.0\\Installer\" /v Path";
	
	// dans le cas contraire
	private static final String ADOBE_NAME_CMD = REGQUERY_UTIL
			+ "\"HKLM\\Software\\Adobe\\Acrobat Reader\\7.0\\InstallPath\"";

	public static String getAdobePath() {
		try {
			Process process = Runtime.getRuntime().exec(ADOBE_NAME_CMD);
			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;
		}
	}

	//parser du résultat
	static 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();
		}
	}

	public static void main(String s[]) {
		System.out.println(getAdobePath());
	}

}

Conclusion :


le code d'origine se trouve sur internet :
http://www.rgagnon.com

Je le poste ici car je ne l'ai pas trouvé facilement et ça peut être utile à d'autres ;-)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.