[JAVA实时屏幕监控]JAVA通过注册表获取Internet代理设置

 

JAVA通过注册表获取Internet代理设置

 

 

描述:这里利用JNI方式(涉及到本地动态链接库ICE_JNIRegistry.dll和注册表操作类库registry.jar)。首先Registry.openSubkey()打开指定的注册表项,然后获取其下的键ProxyEnable的值。若ProxyEnable值为0,则代理未开启;若ProxyEnable值不为0,则表明代理开启,获取键ProxyServer的值,并据此设置代理服务器的各个协议。

 

说明1 键ProxyEnable的值是16进制,双字节DWORD的,用来表明系统当前是否开启Internet代理。

说明2 键ProxyServer的值是一字符串,用来指明系统当前的Internet代理服务器设置。这一设置分为二种情况,其一是对所有协议使用统一的代理服务器设置(值如:172.23.196.238:808),其二是所有协议使用自定义的代理服务器设置(值如:ftp=172.23.196.221:808;gopher=172.23.196.221:808;http=172.23.196.221:808;https=172.23.196.221:808;socks=172.23.196.221:1080)。

 

/**
 * Copyright (c) 2012 Trusted Software and Mobile Computing(TSMC)
 * All right reserved.
 *
 * Created on Apr 24, 2012 12:42:24 PM
 * http://jarg.iteye.com/
 * Author: Jarg Yee <yeshaoting@gmail.com>
 */
package com.iteye.jarg.monitor.util;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Properties;

import com.ice.jni.registry.RegDWordValue;
import com.ice.jni.registry.Registry;
import com.ice.jni.registry.RegistryKey;
import com.ice.jni.registry.RegistryValue;

/**
 * TODO 使用Internet代理服务器工具类
 * 2012-04-25 11:49
 */
public class InternetUtil
{
	
	/** 获取系统配置句柄 */
	private static final Properties prop = System.getProperties();
	
	/** 注册表中Internet表项位置 */
	private static final String Internet = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";

	
	/** 初始化代理 from Internet Settings */
	public static void initProxy()
	{
		
		try
		{
			// 注册表表项值
			RegistryKey registryKey = Registry.openSubkey(Registry.HKEY_CURRENT_USER, Internet, RegistryKey.ACCESS_READ);
			
			// 注册表表项键
			RegistryValue registryValue = registryKey.getValue("ProxyEnable");
			boolean proxyEnable = ((RegDWordValue) registryValue).getData() != 0;	// 代理设置是否开启
//			System.out.println("IE 是否启用了代理设置: " + proxyEnable);

			if (proxyEnable == true)	// 开启了Internet代理
			{
				registryValue = registryKey.getValue("ProxyServer");
				String proxyServer = new String(registryValue.getByteData());
				ProxyUtil.initProxy(proxyServer);
				System.out.println("使用IE代理服务器.");
			}
		}
		catch (Exception e)
		{
			System.out.println("ERROR:操作Windows注册表失败.");
//			e.printStackTrace();
		}
	}
	
}
 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值