regreader.java

来自「java 开发的sip软电话 源码 jain sip」· Java 代码 · 共 169 行

JAVA
169
字号
package net.java.mais.common;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;


/**
 * <p>Title: Netsite TudoMais</p>
 * <p>Description:JAIN-SIP Audio/Video phone application</p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Organisation: CTBC Telecom / Netsite </p>
 * @author Thiago Rocha Camargo (barata7@yahoo.com)
 */


public class RegReader {

	private static final String REGQUERY_UTIL = "reg query ";
	 private static final String REGADD_UTIL = "reg add ";
	  private static final String REGSTR_TOKEN = "REG_SZ";
	  private static final String REGDWORD_TOKEN = "REG_DWORD";
	  
	  private static final String PERSONAL_FOLDER_CMD = REGQUERY_UTIL +
	    "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\" /v Personal";
	  private static final String CPU_SPEED_CMD = REGQUERY_UTIL +
	   "\"HKLM\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0\" /v ~MHz";
	  private static final String CPU_NAME_CMD = REGQUERY_UTIL +
	   "\"HKLM\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0\" /v ProcessorNameString";
	  private static final String DEFAULT_PROXY = REGQUERY_UTIL +
	   "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\\\\" /v ProxyServer";
	  public static final String SET_DEFAULT_DIALER = REGADD_UTIL + "\"HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\callto\\shell\\open\\command\" /f /ve /d \"" + new File(System.getProperty("EXEPATH")).getAbsolutePath() + File.separator + "TudoMais.exe \\\"%1\\\"\"";  
	  	  
	  public static String getDefaultProxy(){
		  
		    try {
			      Process process = Runtime.getRuntime().exec(DEFAULT_PROXY);
			      StreamReader reader = new StreamReader(process.getInputStream());
			      reader.start();
			      process.waitFor();
			      reader.join();

			      String result = reader.getResult();
			      int p = result.indexOf(REGSTR_TOKEN);

			      if (p == -1)
			         return "";

			      return result.substring(p + REGSTR_TOKEN.length()).trim();
			      
			    }
			    catch (Exception e) {
			      return "";
			    }
	  }
	  	  
	  public static String setDefaultDialer(){
		  
		    try {
			      Process process = Runtime.getRuntime().exec(SET_DEFAULT_DIALER);
			      StreamReader reader = new StreamReader(process.getInputStream());

			      reader.start();
			      process.waitFor();
			      reader.join();

			      String result = reader.getResult();
			    
			      return result;
			      
			    }
			    catch (Exception e) {
			      return "";
			    }
	  }
	  
	  public static String getCurrentUserPersonalFolderPath() {
	    try {
	      Process process = Runtime.getRuntime().exec(PERSONAL_FOLDER_CMD);
	      StreamReader reader = new StreamReader(process.getInputStream());

	      reader.start();
	      process.waitFor();
	      reader.join();

	      String result = reader.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;
	    }
	  }

	  public static String getCPUSpeed() {
	    try {
	      Process process = Runtime.getRuntime().exec(CPU_SPEED_CMD);
	      StreamReader reader = new StreamReader(process.getInputStream());

	      reader.start();
	      process.waitFor();
	      reader.join();

	      String result = reader.getResult();
	      int p = result.indexOf(REGDWORD_TOKEN);

	      if (p == -1)
	         return null;

	      // CPU speed in Mhz (minus 1) in HEX notation, convert it to DEC
	      String temp = result.substring(p + REGDWORD_TOKEN.length()).trim();
	      return Integer.toString((Integer.parseInt(temp.substring("0x".length()), 16) + 1));
	    }
	    catch (Exception e) {
	      return null;
	    }
	  }

	  public static String getCPUName() {
	    try {
	      Process process = Runtime.getRuntime().exec(CPU_NAME_CMD);
	      StreamReader reader = new StreamReader(process.getInputStream());

	      reader.start();
	      process.waitFor();
	      reader.join();

	      String result = reader.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();
	    }

	    public void run() {
	      try {
	        int c;
	        while ((c = is.read()) != -1)
	          sw.write(c);
	        }
	        catch (IOException e) { ; }
	      }

	    String getResult() {
	      return sw.toString();
	    }
	  }
}

⌨️ 快捷键说明

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