2013-07-24 169 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

相關問題