# RegJ **Repository Path**: swsk33/RegJ ## Basic Information - **Project Name**: RegJ - **Description**: 一个简易的、用java操作注册表的包。可以通过简单的方法对注册表进行操作。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 1 - **Created**: 2020-02-13 - **Last Updated**: 2025-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RegJ使用说明 ### 一个简易的、可以用java操作注册表的包。 #### 注意:注册表是系统重要数据,操作时请小心谨慎! ### 其功能有: 1,添加注册表项。
2,删除注册表项。
3,查询注册表项。
4,从reg文件导入注册表项。
5,把指定注册表项导出。
6,常规注册表位置的快捷操作。
### 下载地址:[点击进入下载jar包](https://gitee.com/swsk33/RegJ/releases) ## 使用方法: ### 1,添加依赖,有下列两种情况: ①Eclipse直接添加jar:先下载这个jar包并把这个包导入到IDE里面,例如eclipse。不知道如何导入请查看教程:[eclipse导入外部jar包](https://blog.csdn.net/czbqoo01/article/details/72803450)
②Maven工程:在项目的配置文件pom.xml中的``````标签里加入下列依赖,此操作无需在上面手动下载jar包(推荐):
``` com.gitee.swsk33 reg-java 4.0.0 ``` ### 2,导入com.gitee.swsk33.reg下所有类或者需要的类。 ``` import com.gitee.swsk33.reg.*; ``` ### 3,主要类与方法: #### 类*RegAdd*:用于添加注册表项,其包含的方法: * static boolean add(String primaryKey, String name):在注册表里面添加空项 * static boolean add(String primaryKey, String name, String data):在注册表里面添加项并指定其默认项的值,字符串值类型 * static boolean add(String primaryKey, String name, String type, String data):在注册表里面添加项并指定其默认值的类型和值 * static boolean add(String primaryKey, String name, String type, String objectName, String data):在注册表里面添加项并指定项中值的类型、名称和值(若该项已存在,则会在该项中添加值) #### 类*RegDelete*:用于删除注册表项,其包含的方法: * static boolean del(String primaryKey, String name):删除注册表里面的某项及其所有子项 * static boolean del(String primaryKey, String name, String objectName):删除注册表里面的某项的某个值 * static boolean delDefaultValue(String primaryKey, String name):删除(清空)注册表里面的某项的默认值 #### 类*RegExport*:用于导出注册表项为reg文件,其包含的方法: * static boolean export(String primaryKey, String name, String filePath):导出注册表里面的某一项 #### 类*RegImport*:用于从reg注册表文件导入,其包含的方法: * static void importReg(String filePath):从注册表文件(reg文件)导入注册表 #### 类*RegQuery*:用于从查询注册表,其包含的方法: * static String query(String primaryKey, String name):查询注册表下的某项及其所有值的名称、类型和值 * static String query(String primaryKey, String name, String objectName):查询注册表下的某项的值的信息 * static Map> queryValue(String primaryKey, String name):精确查询注册表的值,查询注册表某一项的值及其子项的值 * static String queryValue(String primaryKey, String name, String objectName):精确查询注册表的值,查询注册表某一项之下的值的值 * static String queryDefault(String primaryKey, String name):查询注册表下的某项的默认值的信息 * static String queryDefaultValue(String primaryKey, String name):精确查询注册表的值,查询注册表某一项默认值的值 * static boolean isRegValueBlank(String primaryKey, String name, String objectName):检测注册表某一项下的指定的值是否为空白(值存在而无内容) * static boolean isRegExists(String primaryKey, String name):判断注册表下的某一项是否存在 * static boolean isRegExists(String primaryKey, String name, String objectName):判断注册表下的某一项的值是否存在 * static boolean isRegDefaultExists(String primaryKey, String name):判断注册表下的某一项的默认值是有内容(不为空) #### 类*KeyRegPlace*:位于com.gitee.swsk33.reg.util下,常规关键位置的注册表操作: * static boolean addBootOption(String name, String exec):添加开机启动项 * static boolean addFileOrDirRightMenu(String name, String exec):添加文件(夹)右键菜单 * static boolean addFileOrDirRightMenu(String name, String exec, String iconPath):添加带图标的文件(夹)右键菜单 * static boolean addDirectoryBackgroundMenu(String name, String exec):添加文件夹背景/桌面右键菜单 * static boolean addDirectoryBackgroundMenu(String name, String exec, String iconPath):添加带图标的文件夹背景/桌面右键菜单 * static boolean addUninstallInfo(String name, String installPath, String uninstallString):添加软件卸载信息 * static boolean addUninstallInfo(String name, String installPath, String uninstallString, String iconPath, String version, long size):添加软件卸载信息 * static boolean addUninstallInfo(UninstallInfo info):添加软件卸载信息 **上述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```
*上述RegDataType和RegPrimaryKey位于com.gitee.swsk33.reg.param下。* **详细的使用可以在调用类的方法时查看,IDE中会显示其中的详细文档** ### 实例 **例如给HKEY_CLASSES_ROOT里的AAM\shell里面加一个名为test的项:**
```RegAdd.add(RegPrimaryKey.HKCR, "AAM\\shell\\test");```
**例如给HKEY_CLASSES_ROOT里的AAM\shell里面加一个名为test的项,并指定其子项类型为字符串值且值为2333:**
```RegAdd.add(RegPrimaryKey.HKCR, "AAM\\shell\\test", RegAdd.REG_SZ, "2333");```
**注意:如果指定注册表存在,添加操作会将其覆盖!**
**例如把HKEY_CLASSES_ROOT里的AAM\shell导出到E盘,保存为exp.reg:**
```RegExport.export(RegPrimaryKey.HKCR, "AAM\\shell", "E:\\exp.reg");```
**注意,特殊符号不需要手动转义,在进行操作之前包会先对特殊符号进行转义再执行!**
>最后更新:2021.5.19