Pesquisando na net desenvolvi um aplicativo desktop que captura o número de série do hd, o aplicativo funciona bem desde que eu não tenha apenas um disco na minha máquina se eu tiver qualquer outro disco ele pega o número de série de outro, por exemplo se coloco um pendrive ele pega o serial do pendrive se tiro o pendriove ele pega o serial do hd novamente.
Eu preciso corrigir isso para o programa pegar o serial apenas do disco que esta o sistema operacional! Alguém saberia como corrigir? Olha o código:
Private Sub btnSerie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSerie.Click
''captura a série do hd
Dim searcher2 As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
Dim hdCollection2 As New ArrayList()
Dim Serial As String = ""
Dim Serial2 As String = ""
For Each wmi_HD As ManagementObject In searcher2.[Get]()
Dim hd As New HardDrive()
hd.Model = wmi_HD("Model").ToString()
hd.Type = wmi_HD("InterfaceType").ToString()
hdCollection2.Add(hd)
Next
searcher2 = New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim i As Integer = 0
For Each wmi_HD As ManagementObject In searcher2.[Get]()
Dim hd As HardDrive = DirectCast(hdCollection2(i), HardDrive)
'Pegando o Serial
If wmi_HD("SerialNumber") Is Nothing Then
hd.SerialNo = "None"
Serial = "Não consta"
Else
hd.SerialNo = wmi_HD("SerialNumber").ToString()
Serial = wmi_HD("SerialNumber").ToString()
End If
i += 1
Next
Label7.Text = Serial
End Sub
Acredito que um dos problemas esta nessa linha:
Dim searcher2 As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
pois é um select que varrre todos os drivers que existir foi a única forma que achei de fazer, logo ele deve estar me mostrando o serial do último disco que ele acha, preciso que ele me passe o serial apenas do disco que esta o sistema operacional, alguém sabe corrigir?
Abaixo segue as class que esse código usa:
Class HardDrive
Class HardDrive
Private m_model As String = Nothing
Private m_type As String = Nothing
Private m_serialNo As String = Nothing
Public Property Model() As String
Get
Return m_model
End Get
Set(ByVal value As String)
m_model = value
End Set
End Property
Public Property Type() As String
Get
Return m_type
End Get
Set(ByVal value As String)
m_type = value
End Set
End Property
Public Property SerialNo() As String
Get
Return m_serialNo
End Get
Set(ByVal value As String)
m_serialNo = value
End Set
End Property
End Class
Pergunta
alexandremanowar
E ae pessoal beleza
Pesquisando na net desenvolvi um aplicativo desktop que captura o número de série do hd, o aplicativo funciona bem desde que eu não tenha apenas um disco na minha máquina se eu tiver qualquer outro disco ele pega o número de série de outro, por exemplo se coloco um pendrive ele pega o serial do pendrive se tiro o pendriove ele pega o serial do hd novamente.
Eu preciso corrigir isso para o programa pegar o serial apenas do disco que esta o sistema operacional! Alguém saberia como corrigir? Olha o código:
Acredito que um dos problemas esta nessa linha: Dim searcher2 As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive") pois é um select que varrre todos os drivers que existir foi a única forma que achei de fazer, logo ele deve estar me mostrando o serial do último disco que ele acha, preciso que ele me passe o serial apenas do disco que esta o sistema operacional, alguém sabe corrigir? Abaixo segue as class que esse código usa: Class HardDriveMe ajudem por favor!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.