热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java之注册表操作

WindowsRegistryAPINativeInterface下载地址http:www.trustice.comjavajniregindex.shtml下registry-3
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");

    }

}

推荐阅读
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文总结了Java初学者需要掌握的六大核心知识点,帮助你更好地理解和应用Java编程。无论你是刚刚入门还是希望巩固基础,这些知识点都是必不可少的。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 本文深入探讨了WinRing0及其源代码实现,详细解析了如何通过获取Ring0权限在应用程序中直接执行需要Ring0权限的CPU指令。此外,文章还提供了实例截图和核心代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
author-avatar
有你真好-LOVE
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有