2013-07-24 139 views
4

请不要将此问题标记为重复!在32位应用程序中访问64位注册表

我正在寻找java解决方案 - 而不是C# - 并使用了WinRegistry类。

我写了一个程序,可以读出一个注册表项。现在的问题是:java应用程序是32位,我想从Windows 7 64位系统读取注册表项。有了这个代码窗口将我的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,以便您能够更好地将真正的问题集中在一起)。

回答

5

我现在解决了这个问题 - 感谢Petrucio在2012年发布此解决方案:read/write to Windows Registry using Java

E.g. - 阅读操作:

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(); 
} 

我希望对某人有用。

+0

非常感谢。你的研究为我节省了很多时间和挫折 – MyPasswordIsLasercats

+0

欣赏!有同样的麻烦。 – bgplaya

相关问题