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 SDK注册表操作——RegQueryValueEx

Win32 SDK注册表操作——RegQueryValueExRegQueryValueEx找回所打开注册表键所关联的一个给定值的类型和数据。LONG RegQueryValueEx( HKEY...

注册表操作(VC_Win32)

http://www.cnblogs.com/kzloser/archive/2012/11/07/2758404.html#c0 can http://www.cnblogs.com...

Win32 对注册表添加和删除的操作

转载请注明出处:http://blog.csdn.net/drecik__/article/details/8059631   最近在写一个软件,需要存放配置,由于很小所以不打算存放在其他文件中 ...

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

本文由CSDN用户zuishikonghuan所作,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/46981391 上一...

VC中的注册表操作(VC_Win32)

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

Win32注册表编辑类

// File:game_registry.h #pragma once #include #ifndef GAME_REGISTRY_H #define GAME_REGISTRY_H ...

Java调用win32API与DLL的使用

之前一直觉得Java不能调用系统API就是一个莫大的遗憾,后来发现,我错了,还真可以的,下面就由小桩带你研究研究,如果你会会C++当然最好,学习Java的都知道,Java是跨平台的语言,需要虚拟机,J...

得到Java程序的WIN32窗口句柄(转)

我们知道C++的每个窗体都对应着一个句柄HWND,通过这个句柄我们可以对这个窗口以及它的资源进行各种操作,比如让它前端显示等。那么操作系统给Java编写的窗体(Frame或者JFrame的对象或者子类...
  • dusin
  • dusin
  • 2013年04月25日 10:40
  • 4845
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java访问WIN32注册表
举报原因:
原因补充:

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