首页 > 学院 > 开发设计 > 正文

Java 修改Windows注册表,以实现开机自启动应用程序。

2019-11-15 00:55:43
字体:
来源:转载
供稿:网友
java 修改Windows注册表,以实现开机自启动应用程序。

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

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

package day01;import java.io.IOException;/* 1,reg add 将新的子项或项添加到注册表中   语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]   参数   KeyName   指定子项的完全路径。对于远程计算机,请在//ComputerName/PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。远程机器上只有 HKLM 和 HKU。   值 说明   HKCR: HKEY_CLASSES_ROOT   HKCU: HKEY_CURRENT_USER   HKLM: HKEY_LOCAL_MACHINE   HKU: HKEY_USERS   HKCC: HKEY_CURRENT_CONFIG   /v EntryName   指定要添加到指定子项下的项名称。   /ve   指定添加到注册表中的项为空值。   /t DataType   指定项值的数据类型。DataType可以是以下几种类型:   REG_SZ   REG_MULTI_SZ   REG_DWord_BIG_ENDIAN   REG_DWORD   REG_BINARY   REG_DWORD_LITTLE_ENDIAN   REG_LINK   REG_FULL_RESOURCE_DESCRipTOR   REG_EXPAND_SZ   /s separator   指定用于分隔多个数据实例的字符。当REG_MULTI_SZ指定为数据类型且需要列出多个项时,请使用该参数。如果没有指定,将使用默认分隔符为"/0"。   /d value   指定新注册表项的值。   /f   不用询问信息而直接添加子项或项。   /?   在命令提示符显示帮助。   注释   该操作不能添加子树。该版本的Reg在添加子项时无需请求确认。   下表列出了reg add操作的返回值。值说明   0成功   1失败  */public class Test00 {     /**       * Reg 参数说明       * /v       所选项之下要添加或删除的值名       * /t       RegKey 数据类型(reg_sz字符串)       * /d       要分配给添加的注册表 ValueName 的数据       * /f       不用提示就强行删除       */       public static void changeStart(boolean isStartAtLogon) throws IOException{        String regKey = "HKEY_CURRENT_USER//SOFTWARE//Microsoft//Windows//CurrentVersion//Run";        String myAppName = "mgtest";        String exePath = "/"D://PRogram Files (x86)//love//HelloWorld.exe/"";        Runtime.getRuntime().exec("reg "+(isStartAtLogon?"add ":"delete ")+regKey+" /v "+myAppName+(isStartAtLogon?" /t reg_sz /d "+exePath:" /f"));       }              public static void main(String[] args) throws IOException {             try {            changeStart(true);        } catch (IOException e) {            //changeStart(false);            e.printStackTrace();        }     }    }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表