使用Java修改Windows注册表,使用最基本的就是cmd命令。

事例和运行结果如下所示:

 1 package day01;
 2 
 3 import java.io.IOException;
 4 /*
 5  1,reg add 将新的子项或项添加到注册表中 
 6   语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f] 
 7   参数 
 8   KeyName 
 9   指定子项的完全路径。对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。远程机器上只有 HKLM 和 HKU。 
10   值 说明 
11   HKCR: HKEY_CLASSES_ROOT 
12   HKCU: HKEY_CURRENT_USER 
13   HKLM: HKEY_LOCAL_MACHINE 
14   HKU: HKEY_USERS 
15   HKCC: HKEY_CURRENT_CONFIG 
16 
17   /v EntryName 
18   指定要添加到指定子项下的项名称。 
19   /ve 
20   指定添加到注册表中的项为空值。 
21   /t DataType 
22   指定项值的数据类型。DataType可以是以下几种类型: 
23   REG_SZ 
24   REG_MULTI_SZ 
25   REG_DWORD_BIG_ENDIAN 
26   REG_DWORD 
27   REG_BINARY 
28   REG_DWORD_LITTLE_ENDIAN 
29   REG_LINK 
30   REG_FULL_RESOURCE_DESCRIPTOR 
31   REG_EXPAND_SZ 
32 
33   /s separator 
34   指定用于分隔多个数据实例的字符。当REG_MULTI_SZ指定为数据类型且需要列出多个项时,请使用该参数。如果没有指定,将使用默认分隔符为"\0"。 
35   /d value 
36   指定新注册表项的值。 
37   /f 
38   不用询问信息而直接添加子项或项。 
39   /? 
40   在命令提示符显示帮助。 
41 
42   注释 
43   该操作不能添加子树。该版本的Reg在添加子项时无需请求确认。 
44   下表列出了reg add操作的返回值。值说明 
45   0成功 
46   1失败 
47  */
48 public class Test00 {
49      /** 
50       * Reg 参数说明 
51       * /v       所选项之下要添加或删除的值名 
52       * /t       RegKey 数据类型(reg_sz字符串) 
53       * /d       要分配给添加的注册表 ValueName 的数据 
54       * /f       不用提示就强行删除 
55       */  
56      public static void changeStart(boolean isStartAtLogon) throws IOException{  
57       String regKey = "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";  
58       String myAppName = "mgtest";  
59       String exePath = "\"D:\\Program Files (x86)\\love\\HelloWorld.exe\"";  
60       Runtime.getRuntime().exec("reg "+(isStartAtLogon?"add ":"delete "+regKey+" /v "+myAppName+(isStartAtLogon?" /t reg_sz /d "+exePath:" /f"));  
61      }  
62        
63      public static void main(String[] args) throws IOException {  
64            try {
65             changeStart(true);
66         } catch (IOException e) {
67             //changeStart(false);
68             e.printStackTrace();
69         }
70      }  
71   
72 }
View Code

posted on 2016-01-11 16:01  车车12138  阅读(1647)  评论(0编辑  收藏  举报