当前位置: 首页 > 编程语言 > C#

获取引导盘的序列号等信息分享

时间:2023-04-10 22:37:45 C#

获取引导盘的序列号等信息我正在尝试获取引导盘的序列号,一直没弄明白怎么办呢。我知道分区==硬盘,但我想要启动分区的顺序。这是我到目前为止所拥有的:varsearcher=newManagementObjectSearcher("SELECT*FROMWin32_PhysicalMedia");诠释我=0;foreach(ManagementObjectwmi_HDinsearcher.Get()){//获取硬件序列号。if(wmi_HD["SerialNumber"]==null)richTextBox1.Text+="None"+Environment.NewLine;elserichTextBox1.Text+="Name:"+wmi_HD["Name"]+Environment.NewLine;richTextBox1.Text+="SerialNumber:"+wmi_HD["SerialNumber"]+Environment.NewLine;richTextBox1.Text+="MediaType:"+wmi_HD["MediaType"]+Environment.NewLine;richTextBox1.Text+="可移动:"+wmi_HD["可移动"]+Environment.NewLine;++我;我看过这里:http://msdn.microsoft.com/en-us/library/windows/desktop/aa394346(v=vs.85).aspx#properties看看我可以看看它是否是引导驱动器,我什么也看不见。除了SerialNumber,我没有得到任何返回,其他一切都是空白的。这就是我对上面代码的看法:名称:序列号:5YZ01J34媒体类型:可移动:如何获取引导驱动器的序列号以及上面未显示的内容?再次感谢!在这里,您谈论的是驱动器(因为它是可引导的),而不是磁盘。驱动器是逻辑的,用字母(C、D...等)表示,磁盘是物理的,用数字(从0到N)表示。在您的示例中,您使用了WMI和Win32_PhysicalMedia,这是错误的,因为此类是关于磁盘而不是驱动器的。以下是您想要使用P/Invoke的内容:namespaceConsoleApplication3{usingSystem.Runtime.InteropServices;使用系统文本;publicclassDrive{[DllImport("kernel32.dll",CharSet=CharSet.Auto,SetLastError=true)]privatestaticexternboolGetVolumeInformation(stringrootPathName,StringBuildervolumeNameBuffer,intvolumeNameSize,refuintvolumeSerialNumber,refuintmaximumComponentLength,refuintfileSystemFlags,StringBuilderfileSystemNameBuffer,intnFileSystemNameSize);公共字符串VolumeName{get;私有集;}publicstringFileSystemName{get;私有集;}publicuintSerialNumber{得到;私有集;}publicstringDriveLetter{get;私有集;}publicstaticDriveGetDrive(stringdriveLetter){constintVolumeNameSize=255;constintFileSystemNameBufferSize=255;StringBuildervolumeNameBuffer=newStringBuilder(VolumeNameSize);uintvolumeSerialNumber=0;uintmaximumComponentLength=0;uint文件系统特征=0;英石ringBuilderfileSystemNameBuffer=newStringBuilder(FileSystemNameBufferSize);如果(GetVolumeInformation(string.Format("{0}:\",driveLetter),volumeNameBuffer,VolumeNameSize,refvolumeSerialNumber,refmaximumComponentLength,reffileSystemFeatures,fileSystemNameBuffer,FileSystemNameBufferSize)){返回新驱动器{DriveLetter=driveLetter,FileSystemName=fileSystemNameBuffer。ToString(),VolumeName=volumeNameBuffer.ToString(),SerialNumber=volumeSerialNumber};}//失败,返回nullreturnnull;}}}Drivedrive=Drive.GetDrive("C");Console.WriteLine(string.Format("卷名:{0}",drive.VolumeName));Console.WriteLine(string.Format("文件系统名称:{0}",drive.FileSystemName));Console.WriteLine(string.Format("序列号:{0:X}",drive.SerialNumber));现在,使用WMI相同:varsearcher=newManagementObjectSearcher("SELECT*FROMWin32_LogicalDisk");foreach(ManagementObjectdriveinsearcher.Get()){Console.Write线(”----”);Console.WriteLine(string.Format("VolumeName:{0}",drive["VolumeName"]));Console.WriteLine(string.Format("VolumeSerialNumber:{0}",drive["VolumeSerialNumber"]));Console.WriteLine(string.Format("MediaType:{0}",drive["MediaType"]));Console.WriteLine(string.Format("FileSystem:{0}",drive["FileSystem"]));}注意我用的是Win32_LogicalDisk,因为我们在谈论一个驱动器(这里命名为LogicalDisk)以上是C#学习教程:获取引导驱动器的序列号和其他信息如果它对你有用,你需要知道更多关于C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: