Mendapatkan Device ID dari USB dengan C#

Syntax program berikut ditulis dengan bahasa C# untuk membaca Device ID pada beberapa USB device yang terpasang di komputer. Setiap device USB (misal flash disk) memiliki Device ID yang berbeda (unique) sekalipun merek dan tipe sama. Contoh penggunaannya adalah dalam sistem keamanan berbasis hardware (hardware based security) seperti login key Windows, software licensing, token, dan untuk menyimpan password agar aman.

Buatlah sebuah project baru C# Console Application dalam Visual Studio (dalam contoh ini project diberi nama GetUsbDev). Pada solution explorer tambahkan references “System.Management”.

Selanjutnya ketikkan syntax berikut pada program.cs.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;

namespace GetUsbDev
{
class Program
{
static void Main(string[] args)
{
var usbDevices = GetUSBDevices();
foreach (var usbDevice in usbDevices)
{
Console.WriteLine("Device ID: {0}", usbDevice.DeviceID);
}
}

static List GetUSBDevices()
{
List devices = new List();
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")));
}
collection.Dispose();
return devices;
}
}

class USBDeviceInfo
{
public USBDeviceInfo(string deviceID)
{
this.DeviceID = deviceID;
}
public string DeviceID { get; private set; }
}
}

Jika sudah selesai build solution dan lakukan run program. Tekan F5 untuk start debugging atau Ctrl+F5 untuk start without debugging.