Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] verificar si propiedad de wmi existe

Estas en el tema de verificar si propiedad de wmi existe en el foro de .NET en Foros del Web. Hola a todos. Soy nuevo en el uso de visual.net en general. Estoy haciendo una aplicación para obtener el listado de hardware de los equipos ...
  #1 (permalink)  
Antiguo 08/04/2013, 11:36
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
verificar si propiedad de wmi existe

Hola a todos. Soy nuevo en el uso de visual.net en general.

Estoy haciendo una aplicación para obtener el listado de hardware de los equipos de una empresa usando el wmi. El problema es que dependiendo del windows (si es 7, 8 o xp) algunas propiedades pueden o no existir. Según yo ya había previsto esto, pero sigue fallando. Un ejemplo de mi código es este:

Código vb:
Ver original
  1. Try
  2.             Dim searcher As New ManagementObjectSearcher(
  3.                 "SELECT * FROM Win32_OperatingSystem")
  4.             For Each queryObj As ManagementObject In searcher.Get()
  5.                 If queryObj("CsName") IsNot Nothing Then
  6.                     lista+= " ""CSName"": """ + queryObj("CSName") + " "", "
  7.                 Else
  8.                     lista += " ""CsName"": ""N/A"", "
  9.             Next
  10.         Catch err As ManagementException
  11.             MessageBox.Show("Error al consultar propiedad WMI OS: " & err.Message)
  12.         End Try

Yo asumía que al no tener la propiedad (IsNot Nothing) regresaba el dato N/A, sin embargo, cuando no existe la propiedad todo el bloque falla, por ejemplo al consultar en xp

Código vb:
Ver original
  1. If queryObj("OSArchitecture") IsNot Nothing Then
  2.                     lista  += " ""OSArchitecture"": """ + queryObj("OSArchitecture") + " "", "
  3.                 Else
  4.                     lista += " ""OSArchitecture"": ""N/A"", "
  5.                 End If

¿De qué forma podría hacerlo, o no debo usar el try catch?

Nota: estoy consultando por algunas propiedades en concreto, para no transmitir toda la lista de propiedades completa.
  #2 (permalink)  
Antiguo 08/04/2013, 13:02
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: verificar si propiedad de wmi existe

Cierro el tema. Por si a alguien le interesa, agregando un nuevo bloque try-catch por cada propiedad se resuelve.

Etiquetas: net, propiedad, verificar, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:27.