Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

rui_fernandes

saber informacoes do disco rigido

Mensagens Recomendadas

rui_fernandes    0
rui_fernandes

boa tarde,

andei a pesquisar no google mas nao encontrei mesmo nada fogo...

o que eu quero saber era qual o numero de serie do meu disco rigido...

e depois mais informacoes, mas o prioridade neste caso é o nº de serie, é possivel ???

Rui Fernandes.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

mmmm.... isto estar na secção de vb.net foi engano ou queres fazer isso a partir de VB.NET?

Não me parece que seja possivel ober o número de série de um disco rígido que não seja ler o que está escrito nos autocolantes.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rui_fernandes    0
rui_fernandes

queria saber atravez de vb.net...

nº de serie, ou um ID ou coisa do genero...

se for diferente de disco para disco...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rui_fernandes    0
rui_fernandes

mas isso esta em console application certo ??

mas keria isso numa windows application, da para fazer na mesma ???

é que nao estou bem a ver a diferenca...

o codigo é meio manhoso...lol...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

Ok, toma lá a "papinha" já pronta  :thumbsup:

Imports System.Management

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim drives As New ArrayList

        Dim query As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")

        For Each wmiDrive As ManagementObject In query.Get()
            Dim info As New DriveInfo
            info.Model = wmiDrive("Model").ToString()
            info.Type = wmiDrive("InterfaceType").ToString()
            drives.Add(info)
        Next

        query = New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")

        Dim i As Integer = 0
        For Each wmiDrive As ManagementObject In query.Get()
            ' Get the hard drive from collection using index.
            Dim info As DriveInfo = CType(drives(i), DriveInfo)
            ' Get the hardware serial number.
            If wmiDrive("SerialNumber") Is Nothing Then
                info.SerialNumber = "None"
            Else
                info.SerialNumber = wmiDrive("SerialNumber").ToString()
            End If
            i += 1
        Next

        ' Mostra a informação do disco
        For Each info As DriveInfo In drives
            Dim sBuilder As New System.Text.StringBuilder
            sBuilder.AppendLine("Model:" + info.Model)
            sBuilder.AppendLine("Type:" + info.Type)
            sBuilder.AppendLine("Serial No.:" + info.SerialNumber)
            MessageBox.Show(sBuilder.ToString)
        Next

    End Sub
End Class


Class DriveInfo
    Private _model As String
    Private _type As String
    Private _serialNumber As String

    Public Property Model() As String
        Get
            Return _model
        End Get
        Set(ByVal Value As String)
            _model = Value
        End Set
    End Property

    Public Property Type() As String
        Get
            Return _type
        End Get
        Set(ByVal Value As String)
            _type = Value
        End Set
    End Property

    Public Property SerialNumber() As String
        Get
            Return _serialNumber
        End Get
        Set(ByVal Value As String)
            _serialNumber = Value
        End Set
    End Property

End Class

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rui_fernandes    0
rui_fernandes

lol ja tinha feito isso, mas da um erro...

copiei o codigo e tambem da...

Type 'ManagementObjectSearcher' is not defined.

Type 'ManagementObject' is not defined.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Sir Pereira    3
Sir Pereira

aparece-me isto:

O índice estava fora do intervalo. Tem de ser não negativo e inferior ao tamanho da colecção. Nome do parâmetro: index

:-[

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Sir Pereira    3
Sir Pereira

Mas chega a mostrar alguma drive ? É que comigo e a quem já mostrei este código funciona bem!

Nada... chega àquela parte do código no Debug e pára, aparecendo o erro que especifiquei acima...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rui_fernandes    0
rui_fernandes

bem, fiz uma pesquisa:

 Private Function nSerialHD() As String

        Dim diskClass As New System.Management.ManagementClass("Win32_LogicalDisk")
        Dim disks As System.Management.ManagementObjectCollection = diskClass.GetInstances()
        Dim disk As System.Management.ManagementObject

        For Each disk In disks
            If CStr(disk("Name")) = "C:" Then
                Return disk("VolumeSerialNumber").ToString()
            End If
        Next disk
        Return ""
    End Function

da o numero de serie da particao C, nao do disco.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade