簡體   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