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

cagueca

nome do discos rigidos !! Erro

4 mensagens neste tópico

Boas :

Mais uma vez um pequeno problemazito ..

E assim tenho este código para ir buscar o nome dos discos rígidos do meu PC ..

Imports System
Imports System.Management
Imports System.Windows.Forms


Namespace WMISample

End Namespace

Public Class Form1




    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Label1.Text = TimeOfDay.ToLongTimeString() 'Hora
        Label3.Text = Environment.ProcessorCount 'Contar processadores
        Label4.Text = Environment.OSVersion.ServicePack ' Versao sistema operativo
        Label5.Text = Environment.UserName.ToString 'Nome User
        Label6.Text = My.Computer.Info.TotalPhysicalMemory.ToString & "  Bites" ' Ram Total supostamente
        Label7.Text = System.DateTime.Today ' Data
        Label8.Text = My.Computer.Info.OSFullName ' Sistema operativo
        Label9.Text = Date.Now.DayOfWeek.ToString ' Dia da semana
        ' Buscar drives do pc
        Try
            Dim logicalDrive As String
            For Each logicalDrive In Environment.GetLogicalDrives()
                ListBox1.Items.Add(logicalDrive)
            Next logicalDrive
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Public Overloads Shared Function Main() As Integer

        Try
            Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_DiskDrive")

            For Each queryObj As ManagementObject In searcher.Get()

                ListBox2.Items.Add("Caption: {0}", queryObj("Caption"))

            Next
        Catch err As ManagementException
            MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
        End Try
    End Function



    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Label1.Text = TimeOfDay.ToLongTimeString
        'Ver estado da net Ligado\Desligado
        If My.Computer.Network.IsAvailable = True Then
            Label2.Text = " Conectado "
        Else
            Label2.Text = " Nao conectado "
        End If

    End Sub

End Class

mas esta me a dar erro na listbox ... "Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class"

já fui ver ao suporte mas não consigo entender o que esta mal para não dar ...

Podem dar uma ajuda ??

Abraço

Pus o codigo todo ..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas para listares os nomes dos discos basta isto:

        Try
            For Each d As IO.DriveInfo In IO.DriveInfo.GetDrives()
                  Debug.WriteLine(String.Format("Drive: {0}, Nome:{1}", d.Name, d.VolumeLabel))
            Next
        Catch ex As Exception
            ' Ignora em caso de erro
        End Try

Em relação ao teu erro como estás a chamar a função ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esse debug.writeline posso alterar para messaebox.show ou para label ou listbox certo ??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esse debug.writeline posso alterar para messaebox.show ou para label ou listbox certo ??

Sim, claro!

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