2010-03-03 2 views
1

В настоящее время я пытаюсь запросить и установить некоторые записи реестра Windows через приложение Java. Нам поручено использовать библиотеку JNI-Registry (по причинам лицензирования). Ключи и значения для установки не находятся под моим контролем (я изменяю значения, установленные другим, сторонним, приложением).Кто-нибудь знает, как установить значение реестра по умолчанию для ключа с помощью JNI-Registry (com.ice.jni.registry)?

Я могу получить и установить различные записи и значения ОК для обычных клавиш и значений, и я могу запросить значение по умолчанию для ключа OK. Однако мне нужно знать, как установить значения по умолчанию для ключа.

//This works 
final RegistryKey regKey = Registry.HKEY_LOCAL_MACHINE.openSubKey("SOFTWARE\\company\\app\\subkey", RegistryKey.ACCESS_ALL); 
RegStringValue blah = (RegStringValue) regKey.getValue("blah"); 
if (blah == null) { 
    blah = new RegStringValue(regKey, "blah"); 
} 
blah.setData("Some data"); 
regKey.setValue(blah); 

//Not sure about this... 
final RegistryKey regKey = Registry.HKEY_LOCAL_MACHINE.openSubKey("SOFTWARE\\company\\app\\subkey", RegistryKey.ACCESS_ALL); 
String defaultValue = regKey.getDefaultValue(); //Gets the default value OK 
//How do I reset it, though??? 
//need something like: 
// regKey.setDefaultValue("Some new value"); 

//The following does not seem to work 
RegDWordValue defVal = (RegDWordValue) regKey.getValue(""); //Also tried ...getValue("Default") 
defVal.setData("Some new Value"); 
regKey.setValue(defVal); 

regKey.closeKey(); 

Кто-нибудь знает, возможно ли это?

ответ

5

Да, возможно.

Ну, в C#, для любого ключа, вы можете сделать

key.SetValue("", "value"); 

Безымянным ключ по умолчанию один.

Это отражено в: http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.setvalue.aspx

Любопытное поздно, я знаю. все же, надеюсь, что это поможет кому-то. Я искал то же самое.