RegJ使用说明
一个简易的、可以用java操作注册表的包。
注意:注册表是系统重要数据,操作时请小心谨慎!
其功能有:
1,添加注册表项。
2,删除注册表项。
3,查询注册表项。
4,从reg文件导入注册表项。
5,把指定注册表项导出。
使用方法:
1,添加依赖,有下列两种情况:
①Eclipse直接添加jar:先下载这个jar包并把这个包导入到IDE里面,例如eclipse。不知道如何导入请查看教程:eclipse导入外部jar包
②Maven工程:在项目的配置文件pom.xml中的标签里加入下列依赖,此操作无需在上面手动下载jar包(推荐):
com.gitee.swsk33
reg-java
3.3.10
2,导入swsk33.reg、swsk33.reg.utils下所有类或者需要的类。
import swsk33.reg.*;
import swsk33.reg.utils.*;
3,公共类与方法:
类RegAdd:用于添加注册表项,其包含的方法:
boolean add(String primaryKey, String name)
作用:在注册表里面添加空项
参数:
primaryKey 要操作的注册表主键
name 项名称
返回值:boolean 添加成功返回true
boolean add(String primaryKey, String name, String data)
作用:在注册表里面添加项并指定其默认项的值,字符串值类型
参数:
primaryKey 要操作的注册表主键
name 项名称
data 指定默认项的值
返回值:boolean 添加成功返回true
boolean add(String primaryKey, String name, String type, String data)
作用:在注册表里面添加项并指定其默认值的类型和值
参数:
primaryKey 要操作的注册表主键
name 项名称
type 默认值的类型
data 默认值的值
返回值:boolean 添加成功返回true
boolean add(String primaryKey, String name, String type, String objectName, String data)
作用:在注册表里面添加项并指定项中值的类型、名称和值(若该项已存在,则会在该项中添加值)
参数:
primaryKey 要操作的注册表主键
name 项名称
type 值的类型
objectName 值的名称
data 值的值
返回值:boolean 添加成功返回true
类RegDelete:用于删除注册表项,其包含的方法:
boolean del(String primaryKey, String name)
作用:删除注册表里面的某项及其所有子项
参数:
primaryKey 要操作的主键名
name 要删除的项的名称
返回值:boolean 删除成功返回true
boolean del(String primaryKey, String name, String objectName)
作用:删除注册表里面的某项的某个值
参数:
primaryKey 要操作的主键名
name 项的名称
objectName 要删除的值的名称
返回值:boolean 删除成功返回true
boolean delDefaultValue(String primaryKey, String name)
作用:删除(清空)注册表里面的某项的默认值
参数:
primaryKey 要操作的主键名
name 项的名称
返回值:boolean 删除成功返回true
类RegExport:用于导出注册表项为reg文件,其包含的方法:
boolean export(String primaryKey, String name, String filePath)
作用:导出注册表里面的某一项
参数:
primaryKey 要操作的主键名
name 待导出项名称
filePath 导出路径
返回值:boolean 导出成功返回true
类RegImport:用于从reg注册表文件导入,其包含的方法:
void importReg(String filePath)
作用:从注册表文件(reg文件)导入注册表
参数:
filePath 导入的reg文件路径
类RegQuery:用于从查询注册表,其包含的方法:
String query(String primaryKey, String name)
作用:查询注册表下的某项及其所有值的名称、类型和值
参数:
primaryKey 要查询的主键名
name 查询的项名称
返回值:String 查询结果
String query(String primaryKey, String name, String objectName)
作用:查询注册表下的某项的值的信息
参数:
primaryKey 要查询的主键名
name 查询的项名称
objectName 待查询的值的名字
返回值:String 查询结果
Map> queryValue(String primaryKey, String name)
作用:精确查询注册表的值,查询注册表某一项的值及其子项的值
参数:
primaryKey 要查询的注册表主键
name 要查询的项名称
返回值:Map>查询的注册表项与值,Map对象的键是注册表项名,值也是一个Map对象,为该项下所有值的集合,这个Map对象中键是注册表该项之下的值的名称,值即为对应值
String queryValue(String primaryKey, String name, String objectName)
作用:精确查询注册表的值,查询注册表某一项之下的值的值
参数:
primaryKey 要查询的注册表主键
name 要查询的项名称
objectName 待查询的值的名字
返回值:String 查询的结果
String queryDefault(String primaryKey, String name)
作用:查询注册表下的某项的默认值的信息
参数:
primaryKey 要查询的主键名
name 查询项的名称
返回值:String 查询结果
String queryDefaultValue(String primaryKey, String name)
作用:精确查询注册表的值,查询注册表某一项默认值的值
参数:
primaryKey 要查询的主键名
name 查询项的名称
返回值:String 查询结果
boolean isRegExists(String primaryKey, String name)
作用:判断注册表下的某一项是否存在
参数:
primaryKey 要查询的主键名
name 判断项的名称
返回值:boolean 项是否存在
boolean isRegExists(String primaryKey, String name, String objectName)
作用:判断注册表下的某一项的值是否存在
参数:
primaryKey 要查询的主键名
name 判断项的名称
objectName 判断的值的名称
返回值:boolean 值是否存在
boolean isRegDefaultExists(String primaryKey, String name)
作用:判断注册表下的某一项的默认值是有内容(不为空)
参数:
primaryKey 要查询的主键名
name 判断项的名称
返回值:boolean 默认值是否存在
上述type(值的类型)参数可选常量对应如下:
RegDataType.REG_SZ:字符串值
RegDataType.REG_MULTI_SZ:多字符串值
RegDataType.REG_EXPAND_SZ:可扩展字符串值
RegDataType.REG_DWORD:DWORD值
RegDataType.REG_QWORD:QWORD值
RegDataType.REG_BINARY:二进制值
RegDataType.REG_NONE:无
上述primaryKey(注册表主键)参数可选常量对应如下:
RegPrimaryKey.HKCR:HKEY_CLASSES_ROOT
RegPrimaryKey.HKCU:HKEY_CURRENT_USER
RegPrimaryKey.HKLM:HKEY_LOCAL_MACHINE
RegPrimaryKey.HKU:HKEY_USERS
RegPrimaryKey.HKCC:HKEY_CURRENT_CONFIG
实例
例如给HKEY_CLASSES_ROOT里的AAM\shell里面加一个名为test的项:
new RegAdd().add(RegPrimaryKey.HKCR, "AAM\\shell\\test");
例如给HKEY_CLASSES_ROOT里的AAM\shell里面加一个名为test的项,并指定其子项类型为字符串值且值为2333:
new RegAdd().add(RegPrimaryKey.HKCR, "AAM\\shell\\test", RegAdd.REG_SZ, "2333");
注意:如果指定注册表存在,添加操作会将其覆盖!
例如把HKEY_CLASSES_ROOT里的AAM\shell导出到E盘,保存为exp.reg:
new RegExport().export(RegPrimaryKey.HKCR, "AAM\\shell", "E:\\exp.reg");
注意!若某项的值里面有"(双引号),请在方法参数中用\\\"(三反斜杠加一个双引号)代替!单引号相同。
若有\(反斜杠),则用\\(两个反斜杠)代替!
例如给HKEY_CLASSES_ROOT里的AAM\shell里面加一个名为test的项,并指定其子项类型为字符串值且值为\and":
new RegAdd().add(RegPrimaryKey.HKCR, "AAM\\shell\\test","REG_SZ","\\and\\\"");
最后更新:2020.11.20