Obtenir des informations sur le matériel dans l'application Java
1. Java API pour récupérer des informations matériel informatique?
Parfois, lorsque vous avez besoin d'utiliser Java pour récupérer des informations sur le matériel informatique, vous devez utiliser Java, y compris le numéro de série de Mainboard, la série du disque dur, la CPU, ...
Malheureusement, Java n'a pas de telle API, ou peut-être là, mais il n'a pas été libéré gratuitement pour les programmeurs. Cependant, sur Windows, vous pouvez obtenir ces informations en exécutant le script VB(VB Script).
Malheureusement, Java n'a pas de telle API, ou peut-être là, mais il n'a pas été libéré gratuitement pour les programmeurs. Cependant, sur Windows, vous pouvez obtenir ces informations en exécutant le script VB(VB Script).
2. Obtenir des informations matérielles en utilisant le fichier vbscript
OK, pour être plus simple, vous pouvez créer un fichier nommé 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
Sur Windows cliquez sur le fichier pour l'exécuter :
Dans lequel Win32_ComputerSystemProduct est une classe de Visual Basic, les propriétés de cette classe :
Properties |
string Caption |
string Description |
string IdentifyingNumber |
string Name |
string SKUNumber |
string UUID |
string Vendor |
string Version |
Vous pouvez exécuter un fichier de script plus complet :
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
Les résultats obtenues (corresponde à mon ordinateur) :
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 |
Voir plus de clase Win32_ComputerSystemProduct à :Voir plus Win32_ComputerSystemProduct:Voir plus Win32_ComputerSystemProduct:
Certaines autres classes Visual Basic, vous pouvez vous intéresser à :
3. Utiliser Java pour obtenir des informations sur le matériel informatique
OK ci-dessus, vous savez comment utiliser le vb script pour récupérer les informations matérielles de l'ordinateur. Maintenant, vous devez utiliser Java pour exécuter des fichiers de vb script et obtenir la valeur renvoyée.
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();
}
}
Exécutez l'exemple :
Tutoriels Java Open Source Libraries
- Le Tutoriel de Java JSON Processing API (JSONP)
- Utilisation de l'API Java Scribe OAuth avec Google OAuth2
- Obtenir des informations sur le matériel dans l'application Java
- Restfb Java API pour Facebook
- Créer Credentials pour Google Drive API
- Le Tutoriel de Java JDOM2
- Le Tutoriel de Java XStream
- Utiliser Java Jsoup pour analyser HTML
- Récupérer des informations géographiques basées sur l'adresse IP à l'aide de GeoIP2 Java API
- Lire et écrire un fichier Excel en Java à l'aide d'Apache POI
- Explorer le Facebook Graph API
- Manipulation de fichiers et de dossiers sur Google Drive à l'aide de Java
Show More