使用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(); } } }
新聞熱點
疑難解答