C#得到普通U盘序列号

2025-11-20 21:03:45

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盘序列号

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢