Java и реестр Windows
Самый простой способ работы в языке java с реестром windows - это с помощью внешних программ, которые уже встроены в данную операционную систему. Сегодня мы будем использовать командную строку и программу reg. Код программы, вносящей изменения в реестр:
package up7;
import java.io.*;
public class Up7 {
private static void readWinReg (String zn) throws Exception{
Runtime rt = Runtime.getRuntime();
Process proc = null;
try {
proc = rt.exec("cmd");
} catch (Exception exc){
System.out.println("Консоль не запущена");
}
BufferedReader bfIn = new BufferedReader(new InputStreamReader(proc.getInputStream(), "UTF-8"));
BufferedWriter bfOut = new BufferedWriter (new OutputStreamWriter (proc.getOutputStream(), "UTF-8"));
int ir=0;
while ( (ir = bfIn.read()) != 62 )
{
System.out.print((char) ir);
}
System.out.print((char) ir);
bfOut.write("reg query " + zn + " /s");
bfOut.newLine();
bfOut.flush();
while ( (ir = bfIn.read()) != 62 )
{
System.out.print((char) ir);
}
}
private static void addWinReg (String zn, String zn2, String zn3) {
String s = "cmd /C " + "reg add " + zn + " /v " + zn2 + " /t REG_SZ /d " + "\"" + zn3 + "\"";
try { Runtime.getRuntime().exec(s); }
catch(Exception ex){ex.printStackTrace();}
}
private static void delWinReg (String zn, String zn2) {
String s = "cmd /C " + "reg delete " + zn + " /v " + zn2 + " /f\r\n";
try { Runtime.getRuntime().exec(s); }
catch(Exception ex){ex.printStackTrace();}
}
public static void main(String[] args) throws Exception {
String rees = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Intel\\Audio";
String rees2 = "name";
String rees3 = "value";
addWinReg (rees, rees2, rees3);
readWinReg (rees);
delWinReg (rees, rees2);
readWinReg (rees);
}
}
Пара комментариев по тексту программы. Здесь используются три метода: readWinReg (чтение реестра), addWinReg (добавление значения), delWinReg (удаление значения). В основном методе (void main) последовательно выполняется запись-чтение-удаление-чтение. Для примера я выбрал путь в реестре, в котором хранятся значения от компании Intel, раздел Audio. Мы записываем в этот раздел поле с названием "name" и значением "value". Тип REG_SZ - обыкновенная строка в кодировке Unicode. Если все в порядке, то сначала программа выведет что-то типа этого:
AudioDriverPresent REG_BINARY 01а затем:
name REG_SZ value
AudioDriverPresent REG_BINARY 01и закончит работу.
Вот так несложно можно работать с реестром windows на Java. Если у вас остались вопросы или есть какие-либо комментарии, а также требуется написать практическую работу на java, решить задачу на данном языке или необходима программа, то смело пишите на почту up777up@yandex.ru - я с удовольствием помогу вам. За небольшую плату.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Программы на заказ
Отзывы
Контакты