regedit 的用法及java下如何操作注册表
DOS下操作windows注册表:
—- REG ADD[\\Machine\]Keyname[/v ValueName|/ve][/t Type][/s Separator][/d Data][/f]
—- Machine用来指定远程计算机名称,如果操作的是本地计算机则此参数省略。如果要远程操作名为Server的计算机,其Machine参数表示为”\\Server“。
—- Keyname用来指定在注册表的哪个项下新建注册表值,这个参数必须用注册表项的全路径表示,不过注册表的4个根键一般用缩写表示(各个根键所对应的缩写如表1所示)。例如希望操作的注册表项是”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”,则Keyname参数表示为”HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”。注意:如果操作的是远程计算机的注册表,只能使用HKLM和HKCU这2个根键。
我在实际中使用了如下的两种方式:
修改默认的浏览器为IE:
新建文件 ie.reg
REGEDIT4
[HKEY_CLASSES_ROOT\HTTP\shell\open\command] @=”C:\\Program Files\\Internet Explorer\\iexplore.exe”
说明:@标识默认键值
###########################################
–使用DOS命令执行新建键值
REG ADD HKEY_CLASSES_ROOT\HTTP\shell\open\command /ve /d “C:\Program Files\Internet Explorer\iexplore.exe” /f
REG ADD HKEY_CLASSES_ROOT\HTTP\shell\open\ddeexec\Application /ve /d “IExplore” /f
参数说明:
/ve表示在指定的注册表项下创建键值名称为”默认”的注册表值
/d Data用来指定创建的注册表值的数据。
/f用来指定当要添加的注册表值存在时是否覆盖。
/s Separator的作用是当数据类型为REG_MULTI_SZ时,利用参数来指定分隔字符串的字符。
/t Type用来指定创建的注册表值的数据类型,如果不指定,系统默认使用REG_SZ数据类型
################
在java程序中可以使用registry-3.1.3.zip这个包来对windows系统的注册表进行修改与操作。
http://www.trustice.com/java/jnireg/index.shtml 下的 registry-3.1.3.zip
可以利用它访问、修改、导出注册表项到文件等。
/**
* 得到注册表的键值 HKEY_LOCAL_MACHINE,”SOFTWARE\\2HEI Key的值
*/
public static String getKeys()
{
String key= “0”;
try
{
RegistryKey regkey = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE,”SOFTWARE\\2HEI”,RegistryKey.ACCESS_READ);
String regvalue = regkey.getStringValue(“Key”);
// System.out.println(“—now 2hei’s key is :”+regvalue);
key= regvalue+””;
return key;
}
catch (Exception e)
{
System.out.println(“–2hei’s Key in Reg Has Been Init!:”+e.toString());
}
return key;
}
本文固定链接: https://www.2hei.net/2008/01/22/regedit_dos_java/ | 2hei.net
最活跃的读者