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

标签 java registry

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

我正在寻找 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/

相关文章:

java - ContentProposalAdapter 防止选择提案上出现新行

java - 如何在不使用 java 中的随机类的情况下随机生成 1 到 1000 之间的数字?

c# - 如何使用 C# 从 Windows 读取 'company name'?

Python:不使用注册表 API 访问 Windows 注册表配置单元

java - Window注册表创建 key 在java中不起作用

python - Windows 阻止对 HKLM 进行注册查询;改为返回 HKCU

windows - 如何通过 Powershell 和 PSSessionConfiguration 远程连接到 Exchange 服务器

Java:无法在框架上绘制二维图形

java - driver.connect() 与 DriverManager.getConnection()

java - 从txt列表到字符串数组