java - 使用 java.util.prefs.Preferences 处理 Windows 注册表

标签 java windows registry preferences

我有一些关于注册表的问题。
我们有

Preferences p = Preferences.userRoot();

如果我们执行

p.nodeExists("/HKEY_CURRENT_USER/Software/Policies/Microsoft")    

它将返回 true。
之后:

p = p.node("/HKEY_CURRENT_USER/Software/Policies");    
for(String s : p.childrenNames()){
    System.out.println(">" + s);
}

我们看到它有一个 child :“Windows”。但是

p.nodeExists("/HKEY_CURRENT_USER/Software/Policies/Microsoft/Windows")

返回错误。为什么?

谢谢。

更新

好的。我有一些错误。让我再试一次:为什么

p.nodeExists("/HKEY_CURRENT_USER/Software/Policies/Microsoft/Windows") 

返回错误?

最佳答案

如果你执行显示的代码行,当你到达该行时,按照显示的顺序执行

p.nodeExists("/HKEY_CURRENT_USER/Software/Policies/Microsoft/Windows")

p 不再指向用户 root,而是指向“/HKEY_CURRENT_USER/Software/Policies”。

顺便说一句,您在第三个代码示例中可能遗漏了:

p = p.node("/HKEY_CURRENT_USER/Software/Policies");    

应该是

p = p.node("/HKEY_CURRENT_USER/Software/Policies/Microsoft");    

关于java - 使用 java.util.prefs.Preferences 处理 Windows 注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548307/

相关文章:

c# - TFS API 是否需要 Visual Studio?

java - 根据用户输入提交可变长度表单

java - 将通话与房间同步

VBA 如何获取当前用户应用程序数据文件夹的路径?

c - GetVolumeInformation 返回的 FileSystemName 字符串的可能值是什么?

c# - Adobe acrobat reader 注册表项位置不断变化

batch-file - 如何在 MULTI_SZ 值类型中使用 REG 命令添加换行符?

java - Android - InetAddress isReachable() 的最大超时

java - 在 Java 中执行 Linux 命令时出现单引号问题

windows - 如何处理在 Linux 上使用无效 Windows 文件名提交给 Git 的文件?