用java的Preferences有很大限制,最好是下载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刷新一下能看到变化了吧
}
}
|