zoukankan      html  css  js  c++  java
  • Java 修改Windows注册表,以实现开机自启动应用程序。

    原文:https://www.cnblogs.com/CentForever/p/4661029.html

    使用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 
      指定子项的完全路径。对于远程计算机,请在\ComputerNamePathToSubkey中的子项路径前包含计算机名称。忽略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指定为数据类型且需要列出多个项时,请使用该参数。如果没有指定,将使用默认分隔符为""。 
      /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();
            }
         }  
      
    }

  • 相关阅读:
    nginx配置二级目录,反向代理不同ip+端口
    一次实验环境中的数据库空间整理经历
    NFine中权限判断出错的问题
    Centos7 硬盘分区
    12个必备的JavaScript装逼技巧
    判断五大浏览器类型
    npm 常用命令及版本号浅析
    js 判断IE浏览器
    娱乐冷门小知识
    vue baidu Map 百度路书去掉动画
  • 原文地址:https://www.cnblogs.com/shihaiming/p/13575818.html
Copyright © 2011-2022 走看看