java读写注册表

用javaPreferences有很大限制,最好是下载jRegistryKey,解压出jRegistryKey.jar和jRegistryKey.dll引入项目中

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.Iterator;
 
import ca.beq.util.win32.registry.RegistryKey;
import ca.beq.util.win32.registry.RegistryValue;
import ca.beq.util.win32.registry.RootKey;
import ca.beq.util.win32.registry.ValueType;
 
public class CaRegTest1 {
 
     public static void main(String[] args) {
         
         //列出HKEY_CURRENT_USER的子键
         RegistryKey current_user = new RegistryKey(RootKey.HKEY_CURRENT_USER);
         if (current_user.hasSubkeys()){
             Iterator<RegistryKey> keys = current_user.subkeys();
             while (keys.hasNext()) {
                 RegistryKey k = keys.next();
                 System.out.println(k.getName());
             }
         }
         
         //列出 HKEY_CURRENT_USER/Environment 的所有键值的名称、类型和数据
         RegistryKey env = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Environment" );    
         if (env.hasValues()) {
             Iterator<RegistryValue> values = env.values();
             while (values.hasNext()) {
                 RegistryValue v = values.next();
                 System.out.println(v.getName()+ "\t" +v.getType());
                 System.out.println( "\t" +v.getData());
             }
         }
         
         //写入注册表
         RegistryKey newKey = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Environment\\NewKey" );
         newKey.create(); //创建新的键HKEY_CURRENT_USER/Environment/NewKey
         RegistryValue value = new RegistryValue( "My Paht" ,ValueType.REG_SZ, "hahah\\lalal" );
         newKey.setValue(value); //在新创建的键里写入键值,在注册表中按F5刷新一下能看到变化了吧
     }
 
}

猜你喜欢

转载自zhitangrui2010.iteye.com/blog/2259138