Получить информацию об оборудовании в приложении Java
1. Java API для получения информации об оборудовании компьютера?
Иногда вам нужно использовать Java, чтобы получить информацию о компьютерных аппаратных средствах, в том числе Serial Number схемы (Mainboard), serial жесткого диска, CPU, ...
К сожалению, Java не имеет такого API, или может быть имеет, но он не был выпущен бесплатно для программистов . Тем не менее, на Windows, вы можете получить эту информацию, выполнением сценария VB (VB Script).
К сожалению, Java не имеет такого API, или может быть имеет, но он не был выпущен бесплатно для программистов . Тем не менее, на Windows, вы можете получить эту информацию, выполнением сценария VB (VB Script).
2. Получить информацию аппаратных средств, используя файл vbscript
ОК, для простоты, вы можете создавать файл с названием myscript.vbs:
myscript.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select Name,UUID,Vendor,Version from Win32_ComputerSystemProduct")
For Each objItem in colItems
Wscript.Echo objItem.Name
Wscript.Echo objItem.UUID
Wscript.Echo objItem.Vendor
Wscript.Echo objItem.Version
Next
В window кликните в файл, чтобы запустить его
При этом, Win32_ComputerSystemProduct -это класс Visual Basic, свойства этого класса:
Properties |
string Caption |
string Description |
string IdentifyingNumber |
string Name |
string SKUNumber |
string UUID |
string Vendor |
string Version |
Вы можете запустить полный файл сценария:
Win32_ComputerSystemProduct.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystemProduct")
For Each objItem in colItems
Wscript.Echo objItem.Caption
Wscript.Echo objItem.Description
Wscript.Echo objItem.IdentifyingNumber
Wscript.Echo objItem.Name
Wscript.Echo objItem.SKUNumber
Wscript.Echo objItem.UUID
Wscript.Echo objItem.Vendor
Wscript.Echo objItem.Version
Next
Полученные результаты ( В соответствии с моим компьютером):
Property | Value (My Computer) |
Caption | Computer System Product |
Description | Computer System Product |
IdentifyingNumber | 3F027935U |
Name | Salellite S75B |
SKUNumber | null |
UUID | B09366C5-F0C7-E411-98E4-008CFA8C26DF |
Vendor | TOSHIBA |
Version | PSPPJU-07U051 |
Смотреть подробнее о классе Win32_ComputerSystemProduct по ссылке:
Некоторые другие классы Visual Basic, которые могут быть вам интересны:
3. Использовать Java для получения информации аппаратных средств компьютера
Хорошо, Вы знаете, как использовать VB Script для получения информации аппаратного средства компьютера. Теперь вам нужно использовать Java, чтобы выполнить файлы VB Script и получить возвратное значение.
MyUtility.java
package org.o7planning.hardwareinfo;
public class MyUtility {
public static String makeVbScript(String vbClassName, String[] propNames) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < propNames.length; i++) {
if (i < propNames.length - 1) {
sb.append(propNames[i]).append(",");
} else {
sb.append(propNames[i]);
}
}
String colNameString = sb.toString();
sb.setLength(0);
sb.append("Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")").append("\n");
sb.append("Set colItems = objWMIService.ExecQuery _ ").append("\n");
sb.append("(\"Select ").append(colNameString).append(" from ").append(vbClassName).append("\") ").append("\n");
sb.append("For Each objItem in colItems ").append("\n");
for (String propName : propNames) {
sb.append(" Wscript.Echo objItem.").append(propName).append("\n");
}
sb.append("Next ").append("\n");
return sb.toString();
}
}
GetHardwareInfo.java
package org.o7planning.hardwareinfo;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class GetHardwareInfo {
public static void printComputerSystemProductInfo() {
String vbClassName = "Win32_ComputerSystemProduct";
String[] propNames = new String[] { "Name", "UUID", "Vendor", "Version" };
String vbScript = MyUtility.makeVbScript(vbClassName, propNames);
System.out.println("----------------------------------------");
System.out.println(vbScript);
System.out.println("----------------------------------------");
try {
// Create temporary file.
File file = File.createTempFile("vbsfile", ".vbs");
System.out.println("Create File: " + file.getAbsolutePath());
System.out.println("------");
// Write script content to file.
FileWriter fw = new FileWriter(file);
fw.write(vbScript);
fw.close();
// Execute the file.
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
// Create Input stream to read data returned after execute vb script file.
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
Map<String, String> map = new HashMap<String, String>();
String line;
int i = 0;
while ((line = input.readLine()) != null) {
if (i >= propNames.length) {
break;
}
String key = propNames[i];
map.put(key, line);
i++;
}
input.close();
//
for (String propName : propNames) {
System.out.println(propName + " : " + map.get(propName));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
printComputerSystemProductInfo();
}
}
Запуск примера:
Java Open source libraries
- Руководство Java JSON Processing API (JSONP)
- Использование Scribe OAuth Java API с Google OAuth 2
- Получить информацию об оборудовании в приложении Java
- Restfb Java API для Facebook
- Создание Credentials для Google Drive API
- Руководство Java JDOM2
- Руководство Java XStream
- Использование Java JSoup для анализа кода HTML
- Получение географической информации на основе IP-адреса с помощью GeoIP2 Java API
- Чтение и запись файла Excel в Java с использованием Apache POI
- Изучите Facebook Graph API
- Манипулирование файлами и папками в Google Drive с использованием Java
Show More