USBPhysic C# example (source code sample)
Posted on : 09-02-2010 | By : rlByte Team | In : USBPhysic, rlByte News
2
In order to get the usb storage device (external portable Hard Drives, flash/pen/key drive etc) serial number and other manufacturer information (NOT volume serial, only the unique one, the one that will not change after a format, physical one) using our USBPhysic library and C# (CSharp) you need to do the following 3 easy steps:
(1) Load USBPhysic library and declare the imported library functions :
{
public partial class Form1 : Form
{
//load the library
[DllImport("USBPhysic")]
public static extern int Init(string sUser, string sRegCode);
[DllImport("USBPhysic")]
public static extern int GetUSBPhysicInfo(int diskIndex, int InfoType, StringBuilder pHddInfo);
public Form1()
{
InitializeComponent();
}
(2) Call the Init function to initialize the user computer usb storage devices
{
int USBDisks = Init("your reg code here", "your reg code here");
if (USBDisks > 0)
{
for (int i = 0; i < USBDisks; i++)
{
comboBox1.Items.Add(i);
}
comboBox1.SelectedIndex = 0;
}
}
(3) Now that you have the total hard drives count you can query for the manufacturer information passing the usb device index to the GetPhysicInfo function:
{
const int nChars = 1024;
StringBuilder Buff = new StringBuilder(nChars);
//0 = Get SerialNumber
if (GetUSBPhysicInfo(Int32.Parse(comboBox1.Items[comboBox1.SelectedIndex].ToString()), 0, Buff) > 0)
textBox1.Text = Buff.ToString();
else
textBox1.Text = "n/a";
//1 = Get product name
if (GetUSBPhysicInfo(Int32.Parse(comboBox1.Items[comboBox1.SelectedIndex].ToString()), 1, Buff) > 0)
textBox2.Text = Buff.ToString();
else
textBox2.Text = "n/a";
//2 = Get USB Manufacturer
if (GetUSBPhysicInfo(Int32.Parse(comboBox1.Items[comboBox1.SelectedIndex].ToString()), 2, Buff) > 0)
textBox3.Text = Buff.ToString();
else
textBox3.Text = "n/a";
//3 = Get drive letter mapped on Windows
if (GetUSBPhysicInfo(Int32.Parse(comboBox1.Items[comboBox1.SelectedIndex].ToString()), 3, Buff) > 0)
textBox4.Text = Buff.ToString();
else
textBox4.Text = "n/a";
}

A complete project with source code example for using USBPhysic component to get usb device (hard disk, storage device pen etc) physical information with CSharp (C#) is available in the resources area of the product (here).




