PDA

View Full Version : سوال: بدست آوردن سریال سخت افزار های usb



masoudmok
سه شنبه 11 آبان 1389, 14:29 عصر
سلام .
چطور میتونم سریال تمام تجهیزاتی که از طریق usb به کامپیوتر متصل شدن رو بدست بیارم ؟؟؟
ممنون از راهنماییهاتون

MoS4k1
سه شنبه 11 آبان 1389, 16:03 عصر
بفرمایید

string _serialNumber;
string _driveLetter;

public string getSerialNumberFromDriveLetter(string driveLetter)
{
this._driveLetter = driveLetter.ToUpper();

if (!this._driveLetter.Contains(":"))
{
this._driveLetter += ":";
}

matchDriveLetterWithSerial();

return this._serialNumber;
}

private void matchDriveLetterWithSerial()
{

string[] diskArray;
string driveNumber;
string driveLetter;

ManagementObjectSearcher searcher1 = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");
foreach (ManagementObject dm in searcher1.Get())
{
diskArray = null;
driveLetter = getValueInQuotes(dm["Dependent"].ToString());
diskArray = getValueInQuotes(dm["Antecedent"].ToString()).Split(',');
driveNumber = diskArray[0].Remove(0, 6).Trim();
if (driveLetter == this._driveLetter)
{
/* This is where we get the drive serial */
ManagementObjectSearcher disks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject disk in disks.Get())
{

if (disk["Name"].ToString() == ("\\\\.\\PHYSICALDRIVE" + driveNumber) & disk["InterfaceType"].ToString() == "USB")
{
this._serialNumber = parseSerialFromDeviceID(disk["PNPDeviceID"].ToString());
}
}
}
}
}

private string parseSerialFromDeviceID(string deviceId)
{
string[] splitDeviceId = deviceId.Split('\\');
string[] serialArray;
string serial;
int arrayLen = splitDeviceId.Length - 1;

serialArray = splitDeviceId[arrayLen].Split('&');
serial = serialArray[0];

return serial;
}

private string getValueInQuotes(string inValue)
{
string parsedValue = "";

int posFoundStart = 0;
int posFoundEnd = 0;

posFoundStart = inValue.IndexOf("\"");
posFoundEnd = inValue.IndexOf("\"", posFoundStart + 1);

parsedValue = inValue.Substring(posFoundStart + 1, (posFoundEnd - posFoundStart) - 1);

return parsedValue;
}

masoudmok
سه شنبه 11 آبان 1389, 22:08 عصر
سلام
مرسی بابت راهنماییت دوست عزیز
فقط 1 مشکل ...
ManagementObjectSearcher رو نمیشناسه ...
واسه چی ؟؟؟
system.managment هم اضافه کردم ولی نشد

MoS4k1
سه شنبه 11 آبان 1389, 23:17 عصر
system.managment رو از داخل رفرنس ها اضافه کن