java 获取CPU 和 硬盘序列号的方法
来源:互联网 发布:航迹规划算法 编辑:程序博客网 时间:2024/05/16 04:58
package com.ctne.test;/** * @author guanchen * @creation 2016年10月13日 上午9:35:43 */import java.io.BufferedReader;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.text.DecimalFormat;import java.util.Scanner;import org.hyperic.sigar.CpuInfo;import org.hyperic.sigar.CpuPerc;import org.hyperic.sigar.Sigar;import org.hyperic.sigar.SigarException;public class Cpu {private static Sigar sigar = new Sigar();public static CpuInfo getCpuInfo() {try {CpuInfo[] cpuArr = sigar.getCpuInfoList();return cpuArr[0];} catch (SigarException e) {e.printStackTrace();}return null;}public static String getCpuPerc() {try {CpuPerc[] cpuPercList = sigar.getCpuPercList();double num = 0.0D;DecimalFormat df = new DecimalFormat("#.0");for (int i = 0; i < cpuPercList.length; i++) {num += cpuPercList[i].getCombined();}if (num == 0.0D) {return "0";}return df.format(num * 100.0D);} catch (SigarException e) {e.printStackTrace();}return "";}private static String getHDSerial(String drive) {String result = "";try {File file = File.createTempFile("tmp_02", ".vbs");file.deleteOnExit();FileWriter fw = new java.io.FileWriter(file);String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"+ "Set colDrives = objFSO.Drives\n"+ "Set objDrive = colDrives.item(\""+ drive+ "\")\n"+ "Wscript.Echo objDrive.SerialNumber";fw.write(vbs);fw.close();Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));String line;while ((line = input.readLine()) != null) {result += line;}input.close();file.delete();} catch (Exception e) {}if (result.trim().length() < 1 || result == null) {result = "";}return result.trim();}private static String getCPUSerial() {String result = "";try {File file = File.createTempFile("tmp_01", ".vbs");file.deleteOnExit();FileWriter fw = new java.io.FileWriter(file);String vbs = "On Error Resume Next \r\n\r\n"+ "strComputer = \".\" \r\n"+ "Set objWMIService = GetObject(\"winmgmts:\" _ \r\n"+ " & \"{impersonationLevel=impersonate}!\\\\\" & strComputer & \"\\root\\cimv2\") \r\n"+ "Set colItems = objWMIService.ExecQuery(\"Select * from Win32_Processor\") \r\n "+ "For Each objItem in colItems\r\n "+ " Wscript.Echo objItem.ProcessorId \r\n "+ " exit for ' do the first cpu only! \r\n"+ "Next ";fw.write(vbs);fw.close();Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));String line;while ((line = input.readLine()) != null) {result += line;}input.close();file.delete();} catch (Exception e) {e.fillInStackTrace();}if (result.trim().length() < 1 || result == null) {result = "";}return result.trim();}public static String generateMachineNo() throws Exception {StringBuilder machineNo = new StringBuilder();String cpuser = getCPUSerial();machineNo.append(cpuser);String hdId = getHDSerial("C:/");machineNo.append(hdId);// String tmp = encrypt(machineNo.toString(), "energyregisterkey");return machineNo.toString();}public static String getCPU() {Process process;String serial = null;try {process = Runtime.getRuntime().exec(new String[] { "wmic", "cpu", "get", "ProcessorId" });process.getOutputStream().close();Scanner sc = new Scanner(process.getInputStream());String property = sc.next();serial = sc.next();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return serial;}public static void main(String[] args) throws Exception {String sigar = Cpu.getCpuInfo().getModel();System.out.println("sigar 获取 : " + sigar);System.out.println("java 获取 : " + getCPU());String vbs = null;try {vbs = generateMachineNo();System.out.println("VB 获取 : " + vbs);} catch (Exception e) {e.printStackTrace();}}}
0 0
- java 获取CPU 和 硬盘序列号的方法
- java调用dll获取硬盘和cpu序列号
- 用JAVA获取硬盘序列号的方法
- 用JAVA获取硬盘序列号的方法
- 获取硬盘卷标号和CPU序列号的C#代码
- C#获取CPU和硬盘序列号的源码
- JAVA获取CPU 硬盘 及主板序列号
- JAVA获取CPU 硬盘 及主板序列号
- 获取CPU,硬盘,MAC的序列号
- 获取CPU的ID,获取硬盘的序列号
- JAVA获取硬盘序列号
- JAVA获取硬盘序列号
- Java获取硬盘序列号
- JAVA获取硬盘序列号
- VB获取硬盘逻辑序列号的方法
- .NET获取硬盘序列号的几个方法
- 基于硬件指纹的软件加密和注册技术--获取硬盘物理序列号、CPU序列号、网卡MAC地址、BIOS序列号、主板序列号
- 基于硬件指纹的软件加密和注册技术--获取硬盘物理序列号、CPU序列号、网卡MAC地址、BIOS序列号、主板序列号
- 底部弹出自定义Dialog
- Android开机动画制作
- Oracle EBS交叉币种(4)-应付交叉币种
- hdu 1421
- 谷歌浏览器退回键 弹出确认重新提交表单
- java 获取CPU 和 硬盘序列号的方法
- java 集合Collection接口
- Opencv实现盲水印技术(一)——构建Java工程
- c++设计模式之工厂方法模式
- AndroidStudio录制真机并转换为GIF
- yii带条件搜索分页
- 移动应用实战(移动OA)之四_会议室管理之一
- 【机器视觉】移动机器人控制软件的设计与实现
- 我看小程序系列文章:1 不一样的角度 解读微信小程序