C#獲取U盤序列號(hào)的方法
更新時(shí)間:2015年10月06日 15:36:11 作者:藍(lán)圖
這篇文章主要介紹了C#獲取U盤序列號(hào)的方法,涉及C#針對硬件底層信息操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了C#獲取U盤序列號(hào)的方法。分享給大家供大家參考。具體如下:
using System.Management;
private List<string> _serialNumber = new List<string>();
/// <summary>
/// 調(diào)用這個(gè)函數(shù)將本機(jī)所有U盤序列號(hào)存儲(chǔ)到_serialNumber中
/// </summary>
private void matchDriveLetterWithSerial()
{
string[] diskArray;
string driveNumber;
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");
foreach (ManagementObject dm in searcher.Get())
{
getValueInQuotes(dm["Dependent"].ToString());
diskArray = getValueInQuotes(dm["Antecedent"].ToString()).Split(',');
driveNumber = diskArray[0].Remove(0, 6).Trim();
var disks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject disk in disks.Get())
{
if (disk["Name"].ToString() == ("\\\\.\\PHYSICALDRIVE" + driveNumber) & disk["InterfaceType"].ToString() == "USB")
{
_serialNumber.Add(parseSerialFromDeviceID(disk["PNPDeviceID"].ToString()));
}
}
}
}
private static string parseSerialFromDeviceID(string deviceId)
{
var splitDeviceId = deviceId.Split('\\');
var arrayLen = splitDeviceId.Length - 1;
var serialArray = splitDeviceId[arrayLen].Split('&');
var serial = serialArray[0];
return serial;
}
private static string getValueInQuotes(string inValue)
{
var posFoundStart = inValue.IndexOf("\"");
var posFoundEnd = inValue.IndexOf("\"", posFoundStart + 1);
var parsedValue = inValue.Substring(posFoundStart + 1, (posFoundEnd - posFoundStart) - 1);
return parsedValue;
}
調(diào)用方法:
matchDriveLetterWithSerial();
string[] aa = _serialNumber.ToArray();
for (int i = 0; i < aa.Length; i++)
{
aa[i].ToString(); //這里就可以拿出現(xiàn)在所有的U盤序列號(hào)
}
希望本文所述對大家的C#程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- java生成申請單序列號(hào)的實(shí)現(xiàn)方法
- SQL Server自動(dòng)生成日期加數(shù)字的序列號(hào)
- .net獲取硬件信息_CPU序列號(hào)
- C#獲得MAC地址(網(wǎng)卡序列號(hào))的實(shí)現(xiàn)代碼
- C#利用win32 Api 修改本地系統(tǒng)時(shí)間、獲取硬盤序列號(hào)
- mysql簡單實(shí)現(xiàn)查詢結(jié)果添加序列號(hào)的方法
- PowerShell中獲取Windows系統(tǒng)序列號(hào)的腳本分享
- 安裝完成后如何找回SQL Server實(shí)例安裝時(shí)的序列號(hào)
- C#實(shí)現(xiàn)讀取指定盤符硬盤序列號(hào)的方法
- ORACLE實(shí)現(xiàn)自定義序列號(hào)生成的方法
相關(guān)文章
C#?彈出窗口show()和showdialog()的兩種方式
本文主要介紹了C#?彈出窗口show()和showdialog()的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
C#(asp.net)多線程用法示例(可用于同時(shí)處理多個(gè)任務(wù))
這篇文章主要介紹了C#(asp.net)多線程Thread用法,可用于同時(shí)處理多個(gè)任務(wù),以簡單數(shù)學(xué)運(yùn)算為例講述了Thread類實(shí)現(xiàn)多線程的相關(guān)技巧,需要的朋友可以參考下2016-06-06
深入多線程之:內(nèi)存柵欄與volatile關(guān)鍵字的使用分析
本篇文章對內(nèi)存柵欄與volatile關(guān)鍵字的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
.NET中保證線程安全的高級方法Interlocked類使用介紹
這篇文章主要介紹了.NET中保證線程安全的高級方法Interlocked類使用介紹,Interlocked類可以為為多個(gè)線程共享的變量提供原子操作,需要的朋友可以參考下2014-07-07
C#實(shí)現(xiàn)WinForm捕獲最小化事件的方法
這篇文章主要介紹了C#實(shí)現(xiàn)WinForm捕獲最小化事件的方法,需要的朋友可以參考下2014-08-08
關(guān)于C# Math 處理奇進(jìn)偶不進(jìn)的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄P(guān)于C# Math 處理奇進(jìn)偶不進(jìn)的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
Visual Studio 未能加載各種Package包的解決方案
打開Visual Studio 的時(shí)候,總提示未能加載相應(yīng)的Package包,有時(shí)候還無法打開項(xiàng)目,各種錯(cuò)誤提示,怎么解決呢?下面小編給大家?guī)砹薞isual Studio 未能加載各種Package包的解決方案,一起看看吧2016-10-10

