用java访问windows注册表

 自从jdk1.4,java可以通过java.util.prefs包访问注册表,但访问的范围非常小,只能是HKLM和HKCU的javasoft子项下的prefs项(不知道我的理解是否正确?)。
 
  要想通过java访问整个注册表,可以通过开源代码给予实现。现在这样的开源很多,基本原理都差不多通过JNI实现的,如 http://trustice.com/java/jnireg/就是其中一个。

  准备工作:
  到trustice网站下载其API和dll文件。我下的是registry-3.1.3.zip(URL: ftp://ftp.gjt.org/pub/users/time/java/registry-3.1.3.zip)。解压后,在其下的bin文件夹下就有我们想要registry.jar和dll文件。
 
  轻装上阵
  第一步,在eclipse新建一个java项目-registry,并把jar文件引进来;把dll文件放到classpath下,如c:\winnt(windows)。
  第二步,建立一个简单的测试单元
package com.mascot.myregistry;

import com.ice.jni.registry.*;

public class test {
    public static void main(String[] str) {
        try {
              RegistryKey child = Registry.HKEY_LOCAL_MACHINE
                      .openSubKey("SOFTWARE\\Microsoft");

              RegistryKey create = child.createSubKey("Mascot", "");
              create.setValue(new RegStringValue(create,"hello1","hello000"));
              create.setValue(new RegStringValue(create,"hello2","hello222"));
              System.out.println(childs.getFullName());
        } catch (Exception e) {
              e.printStackTrace();
        }
    }

}
其中的child是本机注册表的HKLM\SOFTWARE\Microsoft,并通过createSubKey创建Mascot子项,通过setValue为Mascot创建两个REG_SZ子项hello1、hello2,数据分别是hello000,hello222
 
  第三步,运行程序,就可以看到注册表多了一个mascot项等等。

  当然,该开源的功能不仅如此,我们还可以实现对注册表进行CRUD,还可以通过RegistryKey的connectRegistry连接远程注册表。 75135.html

topquan 2006-10-14 16:25 发表评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值