栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Java获取硬盘序列号?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Java获取硬盘序列号?

该序列号是由操作系统在格式化驱动器时创建的,而不是制造商的序列号。它是唯一的,因为它是根据当前时间信息动态创建的。AFAIK,没有返回制造商SN的API。充其量,可以读取高清固件的序列号,但这将涉及一些非常底层的API调用。请记住,即使您获得该编号,也无法保证该编号是唯一的,因为每个制造商都可以根据需要分配编号。

import java.io.File;import java.io.FileWriter;import java.io.BufferedReader;import java.io.InputStreamReader;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);      String vbs = "Set objFSO = CreateObject("scripting.FileSystemObject")n"       +"Set colDrives = objFSO.Drivesn"       +"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 BufferedReader          (new InputStreamReader(p.getInputStream()));      String line;      while ((line = input.readLine()) != null) {         result += line;      }      input.close();    }    catch(Exception e){        e.printStackTrace();    }    return result.trim();  }  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);  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437807.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号