java - 通过 Java 中的首选项访问 HKEY_CURRENT_USER

标签 java registry preferences

我正在尝试在注册表中的以下路径中写入注册表项:

HKEY_CURRENT_USER -> 软件 -> TestApp

我目前正在做的事情:

    public static void main(String[] args)
{

    Preferences p = Preferences.userRoot().node("/HKEY_CURRENT_USER/Software/TestApp");
    p.put("TestKey", "TestValue");
}

但它写在 HKEY_CURRENT_USER -> Software -> JavaSoft -> Prefs ->/H/K/E/Y_/C/U/R/R/E/N/T/_/U/S/E/R -> 软件 -> 测试/应用

如何让它遵循绝对路径,为什么要添加额外的斜杠?

最佳答案

您可以看看这篇关于 Read/Write the registry 的精彩博客文章

我可能会提请您注意这段代码:

/**
   * Write a value in a given key/value name
   * @param hkey
   * @param key
   * @param valueName
   * @param value
   * @throws IllegalArgumentException
   * @throws IllegalAccessException
   * @throws InvocationTargetException
   */
  public static void writeStringValue
    (int hkey, String key, String valueName, String value)
    throws IllegalArgumentException, IllegalAccessException,
    InvocationTargetException
  {
    if (hkey == HKEY_LOCAL_MACHINE) {
      writeStringValue(systemRoot, hkey, key, valueName, value);
    }
    else if (hkey == HKEY_CURRENT_USER) {
      writeStringValue(userRoot, hkey, key, valueName, value);
    }
    else {
      throw new IllegalArgumentException("hkey=" + hkey);
    }
  }

我认为这个解决方案非常优雅,可以管理针对注册表的读/写操作。

关于java - 通过 Java 中的首选项访问 HKEY_CURRENT_USER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29368967/

相关文章:

c++ - 为什么 RegOpenKeyEx 让我打开注册表编辑器中不存在的 key ?

java - Android 全屏模式下不显示首选项屏幕

java - 如何制作等待用户事件的java应用程序

java - 在运行时更改 Log4J2 输出文件

java - 在eclipse中运行maven项目的问题,不被识别为Java项目

search - WIX - 注册表搜索返回错误的安装位置

c# - 如何通过 IP 地址列出网络计算机上所有已安装的软件?

android - 仅为一个应用程序禁用声音

android - 使用 Gdx.app.getPreferences 检索首选项

java - 如何获取模式匹配后的子字符串?并从初始字符串中删除找到的子字符串