C#得到普通U盘序列号

 时间:2026-02-13 07:57:07

1、首先打开vs2013(其他版本也可以),在C#项目中选择 Windows窗体应用程序。 写上项目名字点创建。(本例用VS2013系统默认项目名,路径随意。)

C#得到普通U盘序列号

C#得到普通U盘序列号

2、创建项目后,可以看到一个窗口,将Form1窗口的Text属性改为"C#得到普通U盘序列号";在工具箱中拖一个“Button”按钮和“TexBox”文本框,调整界面如下图。

C#得到普通U盘序列号

3、双击“button1”按钮,跳出代码窗口。在button1_Click函数中输入2行代码。

       private void button1_Click(object sender, EventArgs e)

        {

            string str = Get_U盘系列号();

            this.textBox1.Text = str;

        }

其中Get_U盘系列号()为自定义的获取U盘系列号的函数。

C#得到普通U盘序列号

4、点击Get_U盘系列号(),让vs2013系统帮忙新建函数,可省掉书写时间。

C#得到普通U盘序列号

5、依次点击“项目“->“添加项目”->“System.Management”->确定

C#得到普通U盘序列号

C#得到普通U盘序列号

6、完善Get_U盘系列号()方法。

 private string Get_U盘系列号()

        {

            string _driveLetter = Application.StartupPath.Substring(0, 2);//得到盘符

            string[] diskArray;

            string driveNumber;

            string driveLetter;

            string _serialNumber="";

            ManagementObjectSearcher searcher1 = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");

            foreach (ManagementObject dm in searcher1.Get())

            {

                diskArray = null;

                string inValue = dm["Dependent"].ToString();

                int posFoundStart = 0;

                int posFoundEnd = 0;

                posFoundStart = inValue.IndexOf("\"");

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

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

                inValue = dm["Antecedent"].ToString();

                string driveLetter2 = "";

                posFoundStart = 0;

                posFoundEnd = 0;

                posFoundStart = inValue.IndexOf("\"");

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

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

                diskArray = driveLetter2.Split(',');

                driveNumber = diskArray[0].Remove(0, 6).Trim();

                if (driveLetter == _driveLetter)

                {

                    ManagementObjectSearcher disks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

                    foreach (ManagementObject disk in disks.Get())

                    {

                        if (disk["Name"].ToString() == ("\\\\.\\PHYSICALDRIVE" + driveNumber) & disk["InterfaceType"].ToString() == "USB")

                        {

                            string[] splitDeviceId = disk["PNPDeviceID"].ToString().Split('\\');

                            string[] serialArray;                           

                            int arrayLen = splitDeviceId.Length - 1;

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

                            _serialNumber = serialArray[0];

                        }

                    }

                }

            }

            return _serialNumber;

        }

C#得到普通U盘序列号

7、编译生成.exe文件,放置U盘测试。有了U盘系列号,就可以构建自己的加密算法了。

C#得到普通U盘序列号

  • 华为高清通话volte怎么开
  • 汤尤杯2022决赛
  • 魅族mx6怎么进入工程模式
  • Windows Server 2008R2 关闭浏览器IE增强机制
  • 华为nova8怎么切换网络
  • 热门搜索
    秦皇岛旅游网 盐城旅游景点大全 丰宁坝上草原旅游攻略 武汉市旅游景点 扬州旅游攻略二日游 江苏盐城旅游景点 湿地旅游 福建东山岛旅游攻略 沙滩旅游 西递宏村旅游