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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.