JAVA操作注册表的神器

阅读更多
    前一阵子做个程序,想用java操作注册表,上网一搜,JDK是自带操作注册表的类的,在java.util.prefs这个包下面,Preferences类就可以在windows下操作注册表了,但是这个类只能操作HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/prefs这个路径下的注册表,可以说功能极其有限,后来在stackoverflow上看到一篇帖子,提供了一个基于Preferences,结合反射增强功能,可以随意操作注册表任意路径的类,试用了一下,非常好用,这个帖子的地址是 http://stackoverflow.com/questions/62289/read-write-to-windows-registry-using-java,想用这个类的朋友可以直接下载我上传的附件,或者从帖子里拷贝。下面我提供几个简单的例子作为使用时的参考
1,读取一个键值
String value = WinRegistry.readString (
                WinRegistry.HKEY_LOCAL_MACHINE,                             
                "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",          
                "ProductName");                                              
System.out.println("Windows Distribution = " + value);

在我的机器上的输出是
引用
Windows Distribution = Windows 7 Ultimate


2,遍历某个目录下的若干小目录,这里只打印目录名字
String path = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
List subs = WinRegistry.readStringSubKeys(WinRegistry.HKEY_LOCAL_MACHINE, path);
for (String s : subs) {
    System.out.println(s);
}          

 


3,写一个值也很简单
WinRegistry.writeStringValue (
                    WinRegistry.HKEY_LOCAL_MACHINE,                             
                    "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",           
                    "TestKey",
                    "TestValue");  
  • WinRegistry.rar (2 KB)
  • 下载次数: 8

你可能感兴趣的:(JAVA操作注册表的神器)