检测USB插拔源码C#

using System;  
using System.Collections.Generic;  
using System.ComponentModel;  
using System.Data;  
using System.Drawing;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;  
using System.Windows.Forms;  
using System.IO;  //添加IO命名空间  
  
namespace CheckUdisk  
{  
    public partial class Form1 : Form  
    {  
  
        //定义常量  
        public const int WM_DEVICECHANGE = 0x219;  
        public const int DBT_DEVICEARRIVAL = 0x8000;  
        public const int DBT_CONFIGCHANGECANCELED = 0x0019;  
        public const int DBT_CONFIGCHANGED = 0x0018;  
        public const int DBT_CUSTOMEVENT = 0x8006;             
        public const int DBT_DEVICEQUERYREMOVE = 0x8001;  
        public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002;  
        public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;  
        public const int DBT_DEVICEREMOVEPENDING = 0x8003;  
        public const int DBT_DEVICETYPESPECIFIC = 0x8005;  
        public const int DBT_DEVNODES_CHANGED = 0x0007;  
        public const int DBT_QUERYCHANGECONFIG = 0x0017;  
        public const int DBT_USERDEFINED = 0xFFFF;  
  
  
  
        public Form1()  
        {  
            InitializeComponent();  
        }  
  
        private void Form1_Load(object sender, EventArgs e)  
        {  
  
        }  
  
        protected override void WndProc(ref Message m)  
        {  
  
            try  
            {  
                if (m.Msg == WM_DEVICECHANGE)  
                {  
                    switch (m.WParam.ToInt32())  
                    {  
                        case WM_DEVICECHANGE:  
                            break;  
                        case DBT_DEVICEARRIVAL:  
                            DriveInfo[] s = DriveInfo.GetDrives();  
                            foreach (DriveInfo drive in s)  
                            {  
                                if (drive.DriveType == DriveType.Removable)  
                                {  
                                    this.richTextBox1.AppendText("U盘已插入,盘符是" + drive.Name.ToString() + "\r\n");  
                                    break;  
                                }  
                            }  
                            break;  
                        case DBT_CONFIGCHANGECANCELED:  
                            MessageBox.Show("2");  
                            break;  
                        case DBT_CONFIGCHANGED:  
                            MessageBox.Show("3");  
                            break;  
                        case DBT_CUSTOMEVENT:  
                            MessageBox.Show("4");  
                            break;  
                        case DBT_DEVICEQUERYREMOVE:  
                            MessageBox.Show("5");  
                            break;  
                        case DBT_DEVICEQUERYREMOVEFAILED:  
                            MessageBox.Show("6");  
                            break;  
                        case DBT_DEVICEREMOVECOMPLETE:  
                            this.richTextBox1.AppendText("U盘已卸载");  
                            break;  
                        case DBT_DEVICEREMOVEPENDING:  
                            MessageBox.Show("7");  
                            break;  
                        case DBT_DEVICETYPESPECIFIC:  
                            MessageBox.Show("8");  
                            break;  
                        case DBT_DEVNODES_CHANGED:  
                            MessageBox.Show("9");  
                            break;  
                        case DBT_QUERYCHANGECONFIG:  
                            MessageBox.Show("10");  
                            break;  
                        case DBT_USERDEFINED:  
                            MessageBox.Show("11");  
                            break;  
                        default:  
                            break;  
                    }  
                }  
            }  
            catch (Exception ex)  
            {  
                MessageBox.Show(ex.Message);  
            }  
  
            base.WndProc(ref m);  
        }  
    }  
}  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取U盘ID序列号 VS2005编译通过,源码源自CSDN。已经测试好用。 可以获得U盘名称,制造商ID号 版本号 U盘序列号及容量 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Management; namespace UDiskTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { DriveInfo[] s = DriveInfo.GetDrives(); foreach (DriveInfo drive in s) { if (drive.DriveType == DriveType.Removable) { pf.Text = drive.Name.ToString(); break; } } ManagementClass cimobject = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc = cimobject.GetInstances(); foreach (ManagementObject mo in moc) { if (mo.Properties["InterfaceType"].Value.ToString() == "USB") { try { //产品名称 Caption.Text = mo.Properties["Caption"].Value.ToString(); //总容量 Size.Text = mo.Properties["Size"].Value.ToString(); string[] info = mo.Properties["PNPDeviceID"].Value.ToString().Split('&'); string[] xx = info[3].Split('\\'); //序列号 MessageBox.Show("U盘序列号:" + xx[1]); PNPDeviceID.Text = xx[1]; xx = xx[0].Split('_'); //版本号 REV.Text = xx[1]; //制造商ID xx = info[1].Split('_'); VID.Text = xx[1]; } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } } } 如果编译遇到问题是using System.Management;无法找到引用找到, 项目(p)->添加引用(R)->找到.NET标签页 列表中下部位找到System.Management 双击点确定

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值