Recuperando o Serial real do HD e o serial do Volume

Publicado: 02/02/2005 em IntoSpaces
Olá Pessoal!!
Dia-a-dia de desenvolvedor é cheio de surpresas e atividades das mais variadas, se tratando das necessidades de nossos softwares

Vou mostrar como superar uma necessidade que em determinados softwares temos, obter o Serial do Disco Rígido do usuário.
Muita gente confunde um pouco as coisas e acabam obtendo o Serial do Volume(A,C,D,E..) e assumtem como o serial do HD, o que não é verdade.

No código abaixo temos duas funções, uma que retorna o serial de um volume desejado e outra que retorna a informação sobre o dico físico mesmo
Utilizei  VB.NET desta vez, porém ainda o C# é o meu preferido

Imports System.Management
Module SytemInfo
   Public Function GetHDSerial() As String
      Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
      For Each wmi_hd As ManagementObject In searcher.Get()
         If Not wmi_hd("SerialNumber") Is Nothing Then
            Return wmi_hd("SerialNumber")
         End If
      Next
   End Function

   Public
Function GetVolumeSerial(ByVal strDriveLetter As String) As String
      If (strDriveLetter = "" Or strDriveLetter Is Nothing) Then
         strDriveLetter = "C"
      End If
      Dim disk As New ManagementObject("win32_logicaldisk.deviceid=""" + strDriveLetter + ":""")
      disk.Get()
      Return disk("VolumeSerialNumber").ToString()

   End Function
End
Module

Sem muitas explicações aqui, estamos trabalhando com o namespace System.Management, ele e suas classes são responsáveis pelo acesso às informações de hardware e derivados.
Mas tome muito cuidado, pois como tudo isso deve provir das API’s do Windows, pode haver uma incompatibilidade, por exemplo o método GetHDSerial, só funciona do Windowx SP pra frente, ou seja, até agora só Windows XP e Windows Server 2003.

Espero que isso ajude naquela aplicação comercial chata que vocês tenham que fazer! eheheheh Porque ser chato pra fazer é uma coisa, agora ser chato e dar trabalho já é ridículo hehehe😉

[]’s
Shinji

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s