• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rui_fernandes

saber informacoes do disco rigido

32 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

queria saber atravez de vb.net...

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

se for diferente de disco para disco...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja resolvi.

Proriedades>references> e adicionei system.management

obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

:-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no visual basic, quando vou tentar fazer o debugging...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no visual basic, quando vou tentar fazer o debugging...

Até aí entendi. Mas em que linha/instrução ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

            Dim info As DriveInfo = CType(drives(i), DriveInfo)

aqui

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que discos tens no pc ? Experimenta alterar para 1.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao estas a utilizar VISTA DJ_BloodHunter ???

é que testei agora no vista, e da esse erro... :dontgetit:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

testei meter 1 no index como disse o jpaulino e nao deu na mesma...

OMG, solucoes??? sff :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok pessoal, não tenho o vista por isso não posso ajudar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

entao deve ser do vista, problemas com permissoes nao ?

0

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