繁体   English   中英

在32位应用程序中访问64位注册表

[英]Accessing 64-bit Registry in 32-bit application

请不要将此问题标记为重复!

我在用Java( 不是C#)寻找解决方案,并使用WinRegistry类。

我写了一个可以读出注册表项的程序。 现在的问题是:java应用程序是32位的,我想从Windows 7 64位系统中读取reg键。 有了这些代码,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年发布了该解决方案: 使用Java读取/写入Windows Registry

例如-读取操作:

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

我希望这对某人有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM