No se puede indizar la clase ManagementObject
Publicado por marcos (1 intervención) el 13/11/2010 20:25:47
No se puede indizar la clase ManagementObject porque no tiene ninguna propiedad predeterminada.
Saludos al foro. De antemano gracias Guillermo por haberme respondido.
Tengo un proyecto y en el formulario principal intento saber el serial del disco duro y para esto he copiado un procedimiento.
En tiempo de diseno me marca wmi_HD en wmi_HD("SerialNumber").ToString = Nothing Then con algun problema
como: no se puede inizar la clase por no tiene niguna propiedad predeterminada.
y en tiempo de ejecucion me dice: No se puede indizar la clase ManagementObject porque no tiene ninguna propiedad predeterminada.
Si alguien tiene idea de como resolver este error se lo agracesco de antemano.
El codigo del form es el siguiente:
Imports System.Management
Public Class Menu
´ Private Sub Menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim BuscardorWMI As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
For Each wmi_HD As ManagementObject In BuscardorWMI.Get
Dim Hd As New DiscoDuro
Hd.Modelo = wmi_HD("Model").ToString
Hd.Tipo = wmi_HD("InterfaceType").ToString
hdLista.Add(Hd)
Next
BuscardorWMI = New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim i As Integer = 0
For Each wmi_HD As ManagementObject In BuscardorWMI.Get
If i < hdLista.Count - 1 Then
Dim hd As New DiscoDuro
hd = hdLista(i)
If wmi_HD("SerialNumber").ToString = Nothing Then
hd.Serial = "No se Pudo Obtener El Serial"
Else
hd.Serial = wmi_HD("SerialNumber").ToString
End If
i += 1
End If
Next
For Each hd As DiscoDuro In hdLista
MessageBox.Show(hd.Modelo & vbCrLf & hd.Tipo & vbCrLf & hd.Serial)
Next
End Sub
End Class
Public Class DiscoDuro
Private _Modelo As String
Private _Tipo As String
Private _Serial As String
Public Property Modelo() As String
Get
Return _Modelo
End Get
Set(ByVal value As String)
_Modelo = value
End Set
End Property
Public Property Tipo() As String
Get
Return _Tipo
End Get
Set(ByVal value As String)
_Tipo = value
End Set
End Property
Public Property Serial() As String
Get
Return _Serial
End Get
Set(ByVal value As String)
_Serial = value
End Set
End Property
End Class
Saludos al foro. De antemano gracias Guillermo por haberme respondido.
Tengo un proyecto y en el formulario principal intento saber el serial del disco duro y para esto he copiado un procedimiento.
En tiempo de diseno me marca wmi_HD en wmi_HD("SerialNumber").ToString = Nothing Then con algun problema
como: no se puede inizar la clase por no tiene niguna propiedad predeterminada.
y en tiempo de ejecucion me dice: No se puede indizar la clase ManagementObject porque no tiene ninguna propiedad predeterminada.
Si alguien tiene idea de como resolver este error se lo agracesco de antemano.
El codigo del form es el siguiente:
Imports System.Management
Public Class Menu
´ Private Sub Menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim BuscardorWMI As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
For Each wmi_HD As ManagementObject In BuscardorWMI.Get
Dim Hd As New DiscoDuro
Hd.Modelo = wmi_HD("Model").ToString
Hd.Tipo = wmi_HD("InterfaceType").ToString
hdLista.Add(Hd)
Next
BuscardorWMI = New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim i As Integer = 0
For Each wmi_HD As ManagementObject In BuscardorWMI.Get
If i < hdLista.Count - 1 Then
Dim hd As New DiscoDuro
hd = hdLista(i)
If wmi_HD("SerialNumber").ToString = Nothing Then
hd.Serial = "No se Pudo Obtener El Serial"
Else
hd.Serial = wmi_HD("SerialNumber").ToString
End If
i += 1
End If
Next
For Each hd As DiscoDuro In hdLista
MessageBox.Show(hd.Modelo & vbCrLf & hd.Tipo & vbCrLf & hd.Serial)
Next
End Sub
End Class
Public Class DiscoDuro
Private _Modelo As String
Private _Tipo As String
Private _Serial As String
Public Property Modelo() As String
Get
Return _Modelo
End Get
Set(ByVal value As String)
_Modelo = value
End Set
End Property
Public Property Tipo() As String
Get
Return _Tipo
End Get
Set(ByVal value As String)
_Tipo = value
End Set
End Property
Public Property Serial() As String
Get
Return _Serial
End Get
Set(ByVal value As String)
_Serial = value
End Set
End Property
End Class
Valora esta pregunta


0