Я использую JNI Registry API для доступа к реестру Windows. Вот мой код:
import com.ice.jni.registry.Registry;
import com.ice.jni.registry.RegistryException;
import com.ice.jni.registry.RegistryKey;
import com.ice.jni.registry.RegistryValue;
public class JNIRegistryExample {
public static void main(String[] args) {
RegistryKey regkey = Registry.HKEY_LOCAL_MACHINE;
RegistryKey key =Registry.openSubkey(regkey,"SOFTWARE\\SMS\\DHC",RegistryKey.ACCESS_READ);
System.out.println(key.getFullName());
try {
RegistryValue value = key.getValue("ProntoPort");
String x = new String(value.getByteData());
System.out.println(x);
}
catch(RegistryException ex) {
ex.printStackTrace();
}
}
}
Этот код отлично работает для некоторых ключей реестра, но не для других. Например, это хорошо работает с HKLM \ SOFTWARE \ MICROSOFT \ WINDOWS \ CurrentVersion \ ProgramFilesDir, но для многих других это не так. (Пример в коде не работает, и я на 100% уверен, что он существует в реестре, я могу проверить это с помощью команды reg).
Любой
Большое спасибо!