请不要将此问题标记为重复!
我正在寻找 java 中的解决方案 - 不是 C# - 并使用了 WinRegistry 类。
我编写了一个可以读出注册表项的程序。现在的问题是:java 应用程序是 32 位的,我想从 Windows 7 64 位系统读取注册码。使用此代码,Windows 会将我的 32 位程序重定向到 64 位注册表的 32 位部分(将真实路径与代码中的注释 - Wow6432Node 进行比较!)。
// only access to "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"
value = WinRegistry.readString(WinRegistry.HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "Citrix Login Service");
我删除了 try-catch-block,这样您就可以更好地关注真正的问题;)。
最佳答案
我现在解决了这个问题 - 感谢 Petrucio 在 2012 年发布了这个解决方案:read/write to Windows Registry using Java .
例如- 读取操作:
try {
String value = WinRegistry.readString(WinRegistry.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "TestValue", WinRegistry.KEY_WOW64_64KEY);
System.out.println(value);
} catch (Exception ex) {
ex.printStackTrace();
}
我希望这对某人有用。
关于java - 在 32 位应用程序中访问 64 位注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17837661/