java访问WIN32注册表

原创 2006年05月24日 19:48:00

前言:最近的一个任务中,是在插件开发完成WIN32注册表的访问,现将其总结一下。我尝试了两种方法,一种是,通过 (JSR 10)为 Java 1.4 增加的 java.util.prefs 包。还有一种是cdt里面提供的用:cmd命令:“regedit /ea Temp.txt HKEY_LOCAL_MACHINE/SOFTWARE/Elastos/XDK1.0/”
一,java.util.prefs 包

一,java.util.prefs 包
java.util.prefs 包下的 Preferences 类提供操作首选项的基本框架。这个类提供了一系列静态和抽象方法来操作两套首选项(其中一套是用户首选项,另一套是系统首选项)中的其中一套。
使用静态方法,会得到一个特定于平台的实现,就象 WindowsPreferences 类; 然后可以使用由这个特定于平台的实现实现的抽象方法来做这项工作。用包将程序的首选项分组是个好习惯,可以避免与其它应用程序的命名冲突。 当查找Preferences 对象时,只需传递包的名称。在使用非静态方法时, 可以传递对自身的引用(this),程序将确定查找的是哪个包,如清单 1 所示。
清单 1. 从非静态方法获取 Preferences 对象

  Preferences userPrefs = Preferences.userNodeForPackage(this);
  Preferences sysPrefs = Preferences.systemNodeForPackage(this);
但是,如果使用的是静态方法,就必须得到根节点并自己提供包,如清单 2 所示。
清单 2. 从静态方法获取 Preferences 对象

  Preferences userPrefs = Preferences.userRoot().node("/net/zukowski/ibm");
  Preferences sysPrefs = Preferences.systemRoot().node("/net/zukowski/ibm");
有了进行操作的节点后,就可以轻松地设置、获取、除去和转储设置选项。可以实现:写数据,读数据,转储数据,侦听。

但是jdk提供这种方法存取,得注册表信息是在一个他自己定义的Prefs的节点下面。不能够满足我们的这次需求.


Cdt里面也要通过注册表读取c的编译器。具体实现思路是通过cmd“regedit /ea Temp.txt HKEY_LOCAL_MACHINE/SOFTWARE/Elastos/XDK1和.0/”将注册表的信息存放到Temp.txt的文本文件里面。然后通过文件流的读取道一个list里面。然后根据需要解析读取所要的路径。

REGEDIT4

[HKEY_LOCAL_MACHINE/SOFTWARE/Elastos/XDK1.0/]
"Version"="1.0"
"InstallDir"="D://Elastos20.SDK"

Win32 API 常用函数之三——注册表操作(上)

【注册表操作】RegOpenKeyExLONG RegOpenKeyEx(  HKEY hKey,  LPCTSTR lpSubKey,  DWORD ulOptions,  REGSAM samDe...
  • Xscarlet
  • Xscarlet
  • 2007年11月07日 23:00
  • 4508

VC中的注册表操作(VC_Win32)

目录 注册表概述 注册表相关函数详解 注册表编程 (本章节中例子都是用 VS2005 编译调试的) 注册表概述 概述 注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,...
  • qq_23992597
  • qq_23992597
  • 2016年08月15日 14:36
  • 2567

最简单的win32读取注册表

bool bIsIE6 = false; HKEY hKey = NULL; DWORD dwType; DWORD dwSize; LONG lReg = RegOpenKey(HKEY_CLASS...
  • anbinger2013
  • anbinger2013
  • 2016年06月04日 13:48
  • 532

[Win32] 注册表操作(1)基本操作和创建开机自启动

想必注册表大家都不陌生,微软自然也提供了注册表操作的API,通过这些API,我们可以修改注册表达到很多目的,比如添加关联,修改系统设置等。 注意:绝大多数的注册表键的ACL都是不允许标准用户权限的程序...
  • zuishikonghuan
  • zuishikonghuan
  • 2015年07月20日 13:52
  • 3319

win32读取注册表

直接代码 bool bIsIE6 = false; HKEY hKey = NULL; DWORD dwType; DWORD dwSize; LONG lReg = RegOpenKey(...
  • CHALLENG_EVERYTHING
  • CHALLENG_EVERYTHING
  • 2014年08月22日 16:23
  • 1358

Win32_API注册表类的编制以及使用

Win32_API注册表类的编制以及使用 前置知识:VC API KeyWords :注册表 函数 类 一、问题的提出 Windows 已由原来的16位 windows 3.x...
  • xiaojun111111
  • xiaojun111111
  • 2015年06月13日 16:19
  • 414

Java读取注册表总结之Java API

近期项目需要使用java读取注册表,所以就认真的研究了一下,现把研究成果与大家分享一下. 虽然java读取注册表之后限制了java跨平台的特性,但是在实际的应用中还是会用到的.java读取window...
  • A8_8A
  • A8_8A
  • 2014年12月07日 10:52
  • 1504

[Win32] 注册表操作(2)枚举注册表

本文由CSDN用户zuishikonghuan所作,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/46981391 上一...
  • zuishikonghuan
  • zuishikonghuan
  • 2015年07月21日 09:51
  • 2688

c++添加开机启动项,win32 api操作注册表,读写注册表

#include #include #include #include #include using namespace std; string getFilePathByWindows()...
  • zwcwu31
  • zwcwu31
  • 2017年11月21日 17:21
  • 127

Java读取注册表总结之读取的简单方法

============================================================= 【注】 注册表非常非常重要,如果操作不当,极有可能使系统崩溃。所以在操作之...
  • A8_8A
  • A8_8A
  • 2014年12月07日 20:00
  • 2275
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java访问WIN32注册表
举报原因:
原因补充:

(最多只允许输入30个字)