您的位置:首页 > 编程语言 > Java开发

Java获得硬盘和主板的序列号代码

2015-12-16 17:06 531 查看
当你需要获得windows硬件细节时,java可能不是最好的工具。 简直无从下手,不过可以通过VBS脚本获得需要的数据,然后java调用VBS获得输出。

VBS脚本通过查询WMI来获得系统硬件信息。 我们需要Win32_BaseBoard类,更多可以参考 http://msdn2.microsoft.com/en-us/library/aa389273.aspx.
获得主板信息:

import java.io.File;

import java.io.FileWriter;

import java.io.BufferedReader;

import java.io.InputStreamReader;
http://www.kmnk03.com/hxpfk/dzpz/309.html
public class MiscUtils {

private MiscUtils() { }

public static String getMotherboardSN() {

String result = "";

try {http://www.kmnk03.com/hxpfk/npx/310.html

File file = File.createTempFile("realhowto",".vbs");

file.deleteOnExit();

FileWriter fw = new java.io.FileWriter(file);

String vbs =

"Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"

+ "Set colItems = objWMIService.ExecQuery _ \n"

+ " (\"Select * from Win32_BaseBoard\") \n"

+ "For Each objItem in colItems \n"

+ " Wscript.Echo objItem.SerialNumber \n"

+ " exit for ' do the first cpu only! \n"

+ "Next \n";
http://www.kmnk03.com/hxpfk/npx/311.html
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();

}

catch(Exception e){

e.printStackTrace();

}http://www.kmnk03.com/hxpfk/py/312.html

return result.trim();

}

public static void main(String[] args){

String cpuId = MiscUtils.getMotherboardSN();

javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)

null, cpuId, "Motherboard serial number",

javax.swing.JOptionPane.DEFAULT_OPTION);

}http://www.kmnk03.com/hxpfk/py/313.html

}

复制代码

获得硬盘序列号:

import java.io.File;

import java.io.FileWriter;

import java.io.BufferedReader;

import java.io.InputStreamReader;
http://www.kmnk03.com/hxpfk/xmz/314.html
public class DiskUtils {

private DiskUtils() { }

public static String getSerialNumber(String drive) {

String result = "";

try {

File file = File.createTempFile("realhowto",".vbs");

file.deleteOnExit();

FileWriter fw = new java.io.FileWriter(file);
http://www.kmnk03.com/hxpfk/xmz/315.html
String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"

+"Set colDrives = objFSO.Drives\n"

+"Set objDrive = colDrives.item(\"" + drive + "\")\n"

+"Wscript.Echo objDrive.SerialNumber"; // see note

fw.write(vbs);

fw.close();

Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());

BufferedReader input =

new BufferedReaderhttp://www.kmnk03.com/hxpfk/ylb/316.html

(new InputStreamReader(p.getInputStream()));

String line;

while ((line = input.readLine()) != null) {

result += line;

}

input.close();

}

catch(Exception e){

e.printStackTrace();

}http://www.kmnk03.com/hxpfk/ylb/317.html

return result.trim();

}
http://www.kmnk03.com/hxpfk/ylb/319.html
public static void main(String[] args){

String sn = DiskUtils.getSerialNumber("C");

javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)

null, sn, "Serial Number of C:",

javax.swing.JOptionPane.DEFAULT_OPTION);

}kmnk03.com

}www.kmnk03.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: