`
daoshud1
  • 浏览: 559289 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

jaav读取注册表

    博客分类:
  • java
 
阅读更多
读取的注册表类型仅限于:REG_SZ
private static final String REGQUERY_UTIL = "reg query ";
    private static final String REGSTR_TOKEN = "REG_SZ";
    private static final String REGDWORD_TOKEN = "REG_DWORD";
 
    //java注册表地址
    private static final String REGEDIT_FOLDER_CMD = REGQUERY_UTIL
            + "\"HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6.0_27"
            + "\" /v JavaHome";
    //Tomcat注册表地址
    private static final String REGEDIT_TOMCAT_CMD=REGQUERY_UTIL
    		+"\"HKLM\\SOFTWARE\\Apache Software Foundation\\Tomcat\\6.0\\Tomcat6"
    		+"\" /v InstallPath";
    /**
     * 读取注册表 获得java tomcat所对应该的安装目录
     * @param regeditPath 注册表地址
     * @return
     */
    public static String getMyDocumentsFromWinRegistry(String regeditPath) {
        try {
            Process process = Runtime.getRuntime().exec(regeditPath);
            StreamReader streamreader = new StreamReader(process.getInputStream());
 
            streamreader.start();
            process.waitFor();
            streamreader.join();
            String result = streamreader.getResult();
            int p = result.indexOf(REGSTR_TOKEN);
            if (p == -1)
                return null;
            return result.substring(p + REGSTR_TOKEN.length()).trim();
        } catch (Exception e) {
            return null;
        }
    }
    /**
     * 内部类
     * 解决中文乱码问题
     */
    static class StreamReader extends Thread {
        private InputStream is;
        private StringWriter sw;
 
        StreamReader(InputStream is) {
            this.is = is;
            sw = new StringWriter();
        }
        @Override
        public void run() {
            try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
                int c = -1;
                while ((c = is.read()) != -1){
                bos.write(c);
                }                
                sw.write(new String(bos.toString("GBK").getBytes("UTF-8")));
            } catch (IOException e) {
            	e.printStackTrace();
            }
        }
        String getResult() {
            return sw.toString();
        }
    }
分享到:
评论

相关推荐

    java读取注册表工具.zip

    Java是一种广泛使用的编程语言,它通常不直接支持操作系统级别的功能,比如读取Windows注册表,因为这违背了Java跨平台的哲学。然而,通过Java的本地接口(JNI)或者使用Java的Runtime类来执行系统命令,可以实现...

    java 读取注册表(源码 + jar + dll)

    在Java编程环境中,有时我们需要与操作系统进行交互,例如读取或修改Windows注册表中的信息。在Java标准库中并没有提供直接操作注册表的API,但可以通过一些第三方库来实现这一功能。这里提到的"java 读取注册表...

    VFP读取注册表信息

    在本场景中,我们关注的是如何使用VFP来读取Windows注册表信息。注册表是Windows操作系统中存储系统和应用程序设置的重要数据库。通过读取注册表,开发者可以获取系统配置、软件安装路径、用户偏好等关键信息。 ...

    C# 读取注册表信息

    本篇将详细讲解如何利用C#来读取注册表信息。 首先,我们要了解什么是注册表。注册表是Windows操作系统中的一个核心组件,它存储了系统和应用程序的各种配置信息,如启动项、硬件设备信息、软件设置等。读取注册表...

    C#用WMI读取注册表

    本篇文章将详细探讨如何使用C#结合WMI来读取注册表,并构建一个树形结构来展示数据。 首先,要使用C#通过WMI读取注册表,我们需要引入`System.Management`命名空间,这是C#标准库中用于WMI操作的部分。下面是一段...

    C++ 读取注册表VS2010demo

    这个“C++ 读取注册表VS2010 demo”是一个示例项目,它演示了如何在Visual Studio 2010环境下使用C++语言来读取Windows注册表。这个项目不仅提供了读取注册表键值的功能,还包含了字符串类型转换的接口,以便于在...

    java读取注册表的简单方法

    在Java编程环境中,读取Windows系统的注册表是常见的需求,特别是在系统集成、配置管理或软件部署等场景。本文将详细讲解如何使用Java实现这个功能,主要涉及以下几个知识点: 1. **JNA(Java Native Access)库**...

    c#读取注册表

    在编程领域,C#是一种广泛使用的面向对象的编程语言,尤其在开发Windows应用程序时,它提供了与操作系统深度交互的能力,包括读取和修改注册表。注册表是Windows系统中的一个重要数据库,存储着系统和应用程序的各种...

    java 读取注册表 很好用的

    调用runtime来执行注册表查询 private static final String PERSONAL_FOLDER_CMD = REGQUERY_UTIL + "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\" + "Explorer\\Shell Folders\" /v Personal"; ...

    读取注册表信息,有用的朋友下吧

    了解如何读取注册表信息对于系统管理和故障排查至关重要。以下将详细介绍关于读取注册表的相关知识。 1. **注册表结构**: 注册表由五个主要部分组成:HKEY_LOCAL_MACHINE(本地机器)、HKEY_CURRENT_USER(当前...

    易语言读取注册表关联图标

    - **注册表_取值**:使用此函数读取注册表键下的某个值。参数包括已打开的注册表句柄、值的名称和数据类型。返回值为读取到的数据。 - **注册表_关闭**:完成操作后,使用此函数关闭已打开的注册表句柄,释放资源...

    C++读取注册表的实现方法

    C++读取注册表的实现方法 C++读取注册表的实现方法是一种常用的技术,主要用于读取Windows注册表中的数据。本文将详细介绍C++读取注册表的实现方法的相关知识点,包括注册表的基本概念、读取注册表的方法、代码实现...

    java读取注册表信息

    Java语言在处理操作系统级别的任务时,虽然不如C++或Python那样直接,但通过特定的库和API,也可以实现对Windows注册表的读取。在这个场景中,我们需要关注的核心知识点是Java如何与Windows系统进行交互,特别是如何...

    C++读取注册表中的MachineGuid

    C++读取注册表中的MachineGuid

    易语言注册表数值读写

    2. **读取注册表值**:在易语言中,可以使用“读取注册表”命令来获取指定键下的数值。需要指定键路径、数值名称和数值类型。数值类型包括字符串、整数、双精度浮点数等。例如,要读取HKEY_CURRENT_USER\Software\...

    mfc写串口,COM口读取注册表法.txt

    这个方法是采用读取注册表的方法,这个方法的好处就是速度快,差不多15ms就可以读出COM口,所以说进去的也很快,但是缺点就是读不出串口的详细信息。里面是百度云连接,连接里面是已经写好了的程序,可拿来作参考,...

    读取注册表信息类(电子书)

    《读取注册表信息类(电子书)》是一份针对初学者的重要学习资源,它深入浅出地介绍了如何在编程中操作和读取Windows系统的注册表信息。注册表是Windows操作系统的核心组成部分,存储了系统和应用程序的各种配置信息...

    C++ 读取注册表及Timer

    本教程将深入讲解如何使用C++读取Windows注册表,并简要介绍定时器(Timer)的概念。 首先,我们来看C++读取注册表的操作。在Windows API中,有两个关键的函数:`RegOpenKeyEx`和`RegQueryValueEx`。这两个函数允许...

    易语言读取注册表关联图标.zip易语言项目例子源码下载

    在“易语言读取注册表关联图标.zip”这个压缩包中,包含了一个易语言项目的源代码示例,专门用于演示如何通过易语言读取注册表中的关联图标信息。注册表是Windows操作系统中的一个重要组成部分,存储着系统和应用...

    win64环境下读取注册表

    VB6(Visual Basic 6)作为32位开发工具,需要特殊处理才能正确地在64位系统上读取注册表。本文将详细介绍在win64环境下读取注册表的方法,并提供一个使用VB6进行判断和读取的代码示例。 1. **注册表结构差异**: ...

Global site tag (gtag.js) - Google Analytics