Java 之注册表操作

Windows Registry API Native Interface下载地址 http://www.trustice.com/java/jnireg/index.shtml 下 registry-3.1.3.zip(包含源代码)。解开 registry-3.1.3.zip,在 bin 目录中可以看到两个文件 ICE_JNIRegistry.dll 和registry.jar,动态库就是本地代码实现。

import com.ice.jni.registry.*;
import java.text.SimpleDateFormat;
/**
* java 操作注册表
* @author 李志远
*/
public class RegeditTool {
    static SimpleDateFormat shortDateFormat = new SimpleDateFormat

("yyyy-MM-dd");
/** Creates a new instance of test */

    // 把信息存储到注册表HKEY_LOCAL_MACHINE下的某个节点的某一变量中,有则

修改,无则创建
    public static boolean setValue(String folder, String subKeyNode,
            String subKeyName, String subKeyValue) {
        try {
            RegistryKey software = Registry.HKEY_LOCAL_MACHINE
                    .openSubKey(folder);
            RegistryKey subKey = software.createSubKey(subKeyNode, "");
            subKey
                    .setValue(new RegStringValue(subKey, subKeyName,
                            subKeyValue));
            subKey.closeKey();
            return true;
        } catch (NoSuchKeyException e) {
            e.printStackTrace();
        } catch (NoSuchValueException e) {
            e.printStackTrace();
        } catch (RegistryException e) {
            e.printStackTrace();
        }
        return false;
    }

    // 删除注册表中某节点下的某个变量
    public static boolean deleteValue(String folder, String subKeyNode,
            String subKeyName) {
        
        try {
            RegistryKey software = Registry.HKEY_LOCAL_MACHINE
                    .openSubKey(folder);
            RegistryKey subKey = software.createSubKey(subKeyNode, "");
            subKey.deleteValue(subKeyName);
            subKey.closeKey();
            return true;
        } catch (NoSuchKeyException e) {
            System.out.println("NOsuchKey_delete");
        } catch (NoSuchValueException e) {
            System.out.println("NOsuchValue_delete");
        } catch (RegistryException e) {
            e.printStackTrace();
        }
        return false;
    }

    // 删除注册表中某节点下的某节点
    public static boolean deleteSubKey(String folder, String

subKeyNode) {
        try {
            RegistryKey software = Registry.HKEY_LOCAL_MACHINE
                    .openSubKey(folder);
            software.deleteSubKey(subKeyNode);
            software.closeKey();
            return true;
        } catch (NoSuchKeyException e) {
            e.printStackTrace();
        } catch (RegistryException e) {
            e.printStackTrace();
        }
        return false;
    }
    // 打开注册表项并读出相应的变量名的值
    public static String getValue(String folder, String subKeyNode,
            String subKeyName) {
        String value = "";
        try {
            RegistryKey software = Registry.HKEY_LOCAL_MACHINE
                    .openSubKey(folder);
            RegistryKey subKey = software.openSubKey(subKeyNode);
            value = subKey.getStringValue(subKeyName);
            subKey.closeKey();
        } catch (NoSuchKeyException e) {
            value = "NoSuchKey";
            // e.printStackTrace();
        } catch (NoSuchValueException e) {
            value = "NoSuchValue";
            // e.printStackTrace();
        } catch (RegistryException e) {
            e.printStackTrace();
        }
        return value;
    }
    // 测试
    public static void main(String[] args) {
        setValue("SOFTWARE", "Microsoft\\Windows\\CurrentVersion\\Run",

"test",
                "C:\\1.exe");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值