IDE 및 SATA에 대한 H/D 일련 번호 (Volumn Serial Number) 받기
-
22-08-2019 - |
문제
vb.net에서 IDE 및 SATA 드라이브의 하드 디스크 일련 번호를 어떻게 읽을 수 있습니까? (볼륨 일련 번호를 원하지 않습니다).
이 정보는 행정 권리없이 가능하다면 XP와 Vista를 위해 수집해야합니다.
해결책
당신이 사용할 수있는 WMI (Windows Management Instrumentation) : 이와 같은 :
Dim mos As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
For Each mo As ManagementObject In mos.Get()
Dim serial As String = mo("SerialNumber").ToString()
Next
그러나 WMI를 사용하여 일련 번호가 반환되지 않은 경우에 대해 읽었습니다. 이를 달성하는 또 다른 방법은 플랫폼 호출 서비스 (PINVOKE)를 통한 것입니다.
이것 기사에는 저자가 구현하는 다운로드가 포함됩니다 CreateFile () 그리고 deviceiocontrol () VB .NET의 InterOP 서비스를 통해 드라이브 정보를 추출합니다.
위의 요약 된 방법 중 하나를 사용하려면 관리 권한이 필요합니다. 여기. 당신의 느낌이 모험적이라면 C ++/Win32 소스 코드 숙독 할 수 있습니다. ( 'readphysicaldriveinntwithzerorights ()'함수를 확인하십시오.
다른 팁
Public Function getHardDiskSerialNo()
Dim serial As String
Dim hd As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
For Each dvs As ManagementObject In hd.Get()
serial = dvs("SerialNumber").ToString()
Next
Return serial
End Function
HDD 일련 번호를 얻는 코드는 다음과 같습니다
Dim HDD_Serial As String
Dim hdd As New ManagementObjectSearcher("select * from Win32_DiskDrive")
For Each hd In hdd.Get
HDD_Serial = hd("SerialNumber")
MsgBox(HDD_Serial)
Next
도움이되기를 바랍니다.
제휴하지 않습니다 StackOverflow