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();
        }
     }  
  
}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM