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
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
相关文章推荐
- java普通接口编写
- jdk,jre,jvm 三者间的差别与联系
- Java获得硬盘和主板的序列号代码
- FTP下载和上传文件的java实现
- hadoop-2.6.0-src源码导入Eclipse 转载
- java实现截屏程序
- java实例
- java程序中调用其他工具打开文本---Runtime.getRuntime().exec()的使用
- ubuntu14在kDE界面下的关于eclipse提示框黑色背景的修改!
- 【Struts2】(8)文件上传和下载
- Spring中Quartz的配置
- Plus One leetcode java
- 详解Java解析XML的四种方法—DOM/SAX/jdom/dom4j
- Java API —— JDK5新特性
- my eclipse 删除项目时报这个错,An exception has been caught while processi
- struts2_06 struts2补充,值栈,属性驱动与模型驱动
- JAVA Sokcet(服务端)连接WebSocket个人总结
- 老李分享:JAVA性能监控工具
- 老李分享:《Java Performance》笔记2——JVM命令行选项及垃圾收集日志解析 2
- 老李分享:《Java Performance》笔记2——JVM命令行选项及垃圾收集日志解析 1