⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registryvalue.java

📁 注册表的读取信息,工具文件包
💻 JAVA
字号:
/*
** Java native interface to the Windows Registry API.
** 
** Authored by Timothy Gerard Endres
** <mailto:time@gjt.org>  <http://www.trustice.com>
** 
** This work has been placed into the public domain.
** You may use this work in any way and for any purpose you wish.
**
** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
** REDISTRIBUTION OF THIS SOFTWARE. 
** 
*/

package com.ice.jni.registry;

import java.io.PrintWriter;

/**
 * The RegistryValue class represents a value in the registry.
 * This class is abstract, so it can not be instantiated. The
 * class is a superclass to all value classes. The common
 * abstract methods for getting and setting data must be defined
 * by the subclass, but subclasses will almost always provide
 * additional methods that get and set the value using the data
 * type of the subclass.
 *
 * @version 3.1.3
 *
 * @see com.ice.jni.registry.Registry
 * @see com.ice.jni.registry.RegistryKey
 */

abstract public class
RegistryValue
	{
	public static final int			REG_NONE = 0;
	public static final int			REG_SZ = 1;
	public static final int			REG_EXPAND_SZ = 2;
	public static final int			REG_BINARY = 3;
	public static final int			REG_DWORD = 4;
	public static final int			REG_DWORD_LITTLE_ENDIAN = 4;
	public static final int			REG_DWORD_BIG_ENDIAN = 5;
	public static final int			REG_LINK = 6;
	public static final int			REG_MULTI_SZ = 7;
	public static final int			REG_RESOURCE_LIST = 8;
	public static final int			REG_FULL_RESOURCE_DESCRIPTOR = 9;
	public static final int			REG_RESOURCE_REQUIREMENTS_LIST = 10;

	protected static char[]			hexChars;

	int				type;
	String			name;
	RegistryKey		key;
	
	static
		{
		RegistryValue.hexChars = new char[20];

		RegistryValue.hexChars[0] = '0';
		RegistryValue.hexChars[1] = '1';
		RegistryValue.hexChars[2] = '2';
		RegistryValue.hexChars[3] = '3';
		RegistryValue.hexChars[4] = '4';
		RegistryValue.hexChars[5] = '5';
		RegistryValue.hexChars[6] = '6';
		RegistryValue.hexChars[7] = '7';
		RegistryValue.hexChars[8] = '8';
		RegistryValue.hexChars[9] = '9';
		RegistryValue.hexChars[10] = 'a';
		RegistryValue.hexChars[11] = 'b';
		RegistryValue.hexChars[12] = 'c';
		RegistryValue.hexChars[13] = 'd';
		RegistryValue.hexChars[14] = 'e';
		RegistryValue.hexChars[15] = 'f';
		}

	public
	RegistryValue( RegistryKey key, String name, int type )
		{
		this.key = key;
		this.name = name;
		this.type = type;
		}

	public RegistryKey
	getKey()
		{
		return this.key;
		}

	public String
	getName()
		{
		return this.name;
		}

	public int
	getType()
		{
		return this.type;
		}

	public void
	export( PrintWriter out )
		{
		out.print( "\"" + this.getName() + "\"=" );
		out.println( "\"ERROR called RegistryValue.export()!\"" );
		}

	public String
	toString()
		{
		return "[type=" + this.type + ",name=" + this.name + "]";
		}

	public static void
	exportHexData( PrintWriter out, byte[] data )
		{
		int		i, cnt;
		char	ch1, ch2;
		int		len = data.length;

		for ( i = 0, cnt = 0 ; i < len ; ++i )
			{
			byte dByte = data[i];

			ch2 = RegistryValue.hexChars[ (dByte & 0x0F) ];
			ch1 = RegistryValue.hexChars[ ((dByte >> 4) & 0x0F) ];

			if ( cnt == 0 ) out.print( "  " );
			
			out.print( ch1 );
			out.print( ch2 );

			if ( i < (len - 1) )
				out.print( "," );
			
			if ( ++cnt > 15 )
				{
				cnt = 0;
				if ( i < (len-1) )
					out.println( "\\" );
				}
			}

		out.println( "" );
		}

	abstract public byte[]
		getByteData();

	abstract public int
		getByteLength();

	abstract public void
		setByteData( byte[] data );

	}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -