通过 SELECT * FROM Win32_PhysicalMedia 可以返回硬盘序列号,但是在实际使用中某些情况下(原因未知)返回的 SerialNumber 是实际硬盘序列号的字符串按字符UrlEncode得到的纯数字字符串,如硬盘序列号为 1551F01361BF,可能某一次返回给你的会变成 3531313530463331313646422020202020202020,因此需要简单处理一下
If str.Length > 12 AndAlso str.Length Mod 4 = 0 Then Dim sb As New StringBuilder For i As Int32 = 0 To str.Length - 1 Step 4 sb.Append(HttpUtility.UrlDecode("%" & str.Substring(i + 2, 2))) sb.Append(HttpUtility.UrlDecode("%" & str.Substring(i, 2))) Next str = sb.ToString.Trim End If Return str
至于出现这个问题的原因,我还在没找到答案,如果有哪位大侠遇到过,还望不吝赐教