PDA

View Full Version : اطلاعات USB



reza_devel0per
چهارشنبه 02 مرداد 1392, 12:04 عصر
سلام

من متدی نوشتم که اطلاعات USB ها رو بهم میده.
البته این اطلاعات شامل این هاست :
http://msdn.microsoft.com/en-us/library/aa394506%28v=vs.85%29.aspx

برای ساخت قفل سخت افزاری که میگن شماره سریال USB رو میخونه! آیا منظورشون DeviceID لینک بالا هستش یا چیزه دیگست؟!

ممنون میشم راهنمایی بفرمایید
مرسی

programerinfonet
چهارشنبه 02 مرداد 1392, 12:48 عصر
دوست عزیز من که نفهمیدم مشکلت الان چیه
اما توسط این کد میتونی لیست usb devis رو به همراه سریالشون نمایش بدی

namespace ConsoleApplication1
{
using System;
using System.Collections.Generic;
using System.Management; // need to add System.Management to your project references.

class Program
{
static void Main(string[] args)
{
var usbDevices = GetUSBDevices();

foreach (var usbDevice in usbDevices)
{
Console.WriteLine("Device ID: {0}, PNP Device ID: {1}, Description: {2}",
usbDevice.DeviceID, usbDevice.PnpDeviceID, usbDevice.Description);
}

Console.Read();
}

static List<USBDeviceInfo> GetUSBDevices()
{
List<USBDeviceInfo> devices = new List<USBDeviceInfo>();

ManagementObjectCollection collection;
using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub"))
collection = searcher.Get();

foreach (var device in collection)
{
devices.Add(new USBDeviceInfo(
(string)device.GetPropertyValue("DeviceID"),
(string)device.GetPropertyValue("PNPDeviceID"),
(string)device.GetPropertyValue("Description")
));
}

collection.Dispose();
return devices;
}
}

class USBDeviceInfo
{
public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
{
this.DeviceID = deviceID;
this.PnpDeviceID = pnpDeviceID;
this.Description = description;
}
public string DeviceID { get; private set; }
public string PnpDeviceID { get; private set; }
public string Description { get; private set; }
}
}

mhmd.tv
دوشنبه 21 مرداد 1392, 18:02 عصر
این دستور console.writeline که می نویسید، کجا چاپ میشه؟
اگه بخوایم توی یه listbox نمایش بدیم باید از چه دستوری استفاده کنیم؟
ممنون از پاسخ گوییتون

intel_amd
دوشنبه 21 مرداد 1392, 18:38 عصر
آقا رضا کد را که نگذاشتید !
منظورتون از usb و سریالش همون فلش مموری هست دیگه؟

mhmd.tv
سه شنبه 22 مرداد 1392, 20:41 عصر
این دستور console.writeline که می نویسید، کجا چاپ میشه؟
اگه بخوایم توی یه listbox نمایش بدیم باید از چه دستوری استفاده کنیم؟

aliagamon
سه شنبه 22 مرداد 1392, 21:12 عصر
اون Console.writeline در صورتی که برنامه تحت کنسول باشه چاپ میکنه تو کنسول(که برنامه شما نیست) پس باید جای اون تعریف کنی که مثلا بریز تو یه تکست باکس یا لیست باکس
برای این کار اینو شما گلوبال تعریف کن(زیر کروشه کلاس اصلی برنامه):

List<string> _items = new List<string>();


بعد هر جا خواستی(مثلا جای اون console.Writeline اینو بنویس:
_items.Add(usbDevice.DeviceID.toString());
_items.Add(usbDevice.PnpDeviceID..toString());
_items.Add(usbDevice.Description..toString());

listBox1.DataSource = _items;

البته من این کدو تو نوت پد ++ نوشتم باگ داشت ببخشین به بزرگی خودتون

mhmd.tv
سه شنبه 22 مرداد 1392, 21:20 عصر
با قصعه کد زیر نمی تونم اطلاعات usb رو پیدا کنم؟

ManagementObjectSearcher search = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort");
foreach (ManagementObject MOject in search.Get())
{
listBox3.Items.Add(MOject["InstanceName"]);
listBox3.Items.Add(MOject["PortName"]);


}