Página 1 de 1

WMI Code creator (Quizá un poco fuera de tema)

Publicado: 01 Jul 2010, 11:23
por Jonny
Hola

Quizá aquí es un poco fuera de tema, pero no se bien donde ponerlo, porque es un programa, pero no hecho con AutoIt, pero que puede ayudar a programar en este lenguaje.

Se trata de WMI Code creator. Es un programa, que acabo de encontrar, buscando una clase WMI por internet.

Podemos ver todas las clases del sistema, propiedades, etc. Y lo mejor, es que nos genera el código para usar la clase que queramos, hasta en tres lenguajes.

El pequeño inconveniente, está en que entre los lenguajes para los que genera el código, no está AutoIt (como cabía esperar). Los lenguajes son: C#, VB.net y VB Script, pero puede servir para adaptarlo rápidamente a AutoIt, si se conoce alguno de estos tres lenguajes.

Imagino, que sin conocer WMI, será un tanto complicado, pero almenos, puede facilitar el trabajo a quienes lo manejen bien, y trasteándolo puede aprednerse algo (aunque no sea la mejor manera jejeje).

http://www.sendspace.com/file/h8zjec

Espero que os sirva.

Salu2!

Re: WMI Code creator (Quizá un poco fuera de tema)

Publicado: 01 Jul 2010, 12:09
por Ximorro
¡Pero si está muy bien!
¿Y cómo que no vale para AutoIT? ¡Vale a las mil maravillas!
(bueno, igual lo podríamos poner en el foro de chat, porque éste es para programas de AutoIT, pero desde luego es una ayuda interesante al programador de AutoIT, siendo que es un lenguaje muy asociado a Windows, y WMI es algo muy específico de Windows).

Como te comenté en la entrada correspondiente piensa que cuando consultas a WMI el lenguaje no tiene mucho que hacer, lo que tiene que hacer es proporcionarte acceso al objeto de consulta, que es de Windows, ni siquiera del lenguaje, después es ese objeto el que consulta a WMI con SQL, o sea que tampoco se hace en tu lenguaje de programación.

De hecho como tampoco sé WMI he consultado lo mismo que pusiste en la entrada de los USB, analizando la consulta que se hace allí he seleccionado como Namespace a root\CIMV2, como clase a Win32_SystemEnclosure, y como campos PartNumber, SerialNumber y SMBIOSAssetTag. Vaya, lo que he hecho es seleccionar lo mismo que usaba el programa de AutoIt.

Atención al código resultante que da el programa en VBScript y el de AutoIT que nos pusiste (lo copio debajo para compararlos fácilmente) ¡¡¡Son prácticamente idénticos!!! De hecho hasta llama igual a las variables, para mí que el código AutoIt está traducido de un generado por este programa, pero atención que la sintaxis de VBScript y AutoIt es para estas cuatro cosas ¡prácticamente la misma!. Así que se traduce pero que muy directamente (desde C# o VB.Net no es tan directo, pero tampoco es tan diferente si vas al meollo del código)

VBScript

Código: Seleccionar todo

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_SystemEnclosure",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_SystemEnclosure instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "PartNumber: " & objItem.PartNumber
    Wscript.Echo "SerialNumber: " & objItem.SerialNumber
    Wscript.Echo "SMBIOSAssetTag: " & objItem.SMBIOSAssetTag
Next
AutoIt:

Código: Seleccionar todo

$strComputer = "."
$objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & $strComputer & "\root\cimv2")
$colSMBIOS = $objWMIService.ExecQuery _
    ("Select * from Win32_SystemEnclosure")
For $objSMBIOS in $colSMBIOS
    ConsoleWrite ("Numero de parte: " & $objSMBIOS.PartNumber & @CRLF)
   ConsoleWrite ("Numero de serie: " _
        & $objSMBIOS.SerialNumber & @CRLF)
   ConsoleWrite ("Placa de identificación: " & $objSMBIOS.SMBIOSAssetTag & @CRLF)
Next
Si alguna vez me meto con WMI seguro que usaré este programa. ¡Muy buen hallazgo! ¡Gracias!

Re: WMI Code creator (Quizá un poco fuera de tema)

Publicado: 01 Jul 2010, 13:01
por Jonny
Hola

Quizá sí, en Chat estaría mejor puesto el post...

Me alegro que te haya gustado. Lo he encontrado buscando como recoger info del hardware usb (sigo con ello).

Lo que pasa, es que sin conocer WMI, no se me ocurre como usar esto (sin probar y probar), porque muchas clases y parámetros de estas, se puede imaginar que hacen por el nombre pero otros...

De todas formas, me parece un buen programa, que como dices, es de mucha ayuda a la hora de meterse a programar con esto.
Decía que era un pequeño inconveniente que no generara código para AutoIt, porque sería lo suyo, pero generando el código para VB.net (que es lo que más se parece a AutoIt) se puede ver bien como funciona el objeto.

Por cierto, me gusta eso de que pueda ejecutarse una clase directamente desde el programa, igual qe se haría desde la aplicación real, para ver como funciona.

Salu2!

Re: WMI Code creator (Quizá un poco fuera de tema)

Publicado: 02 Jul 2010, 07:57
por Ximorro
Yo diría que más que VB.Net se parece a VBScript, fíjate en los códigos que he puesto, son prácticamente iguales. Pero vaya, quizás sea cuestión de gustos, una vez tienes el objeto objWMIService lo demás siempre es prácticamente igual, pues se trata de usar los métodos de ese objeto para hacer las consultas.

Pues sí, ahora lo que tienes que hacer es aprender WMI, es un mundo...

Re: WMI Code creator (Quizá un poco fuera de tema)

Publicado: 02 Jul 2010, 09:20
por Jonny
Y un mundo muy amplio, me parece...

Pues es verdad... VB script también se parece mucho.

Salu2!

Re: WMI Code creator (Quizá un poco fuera de tema)

Publicado: 30 Mar 2011, 06:54
por vicodex
Se ha suprimido el enlace de descarga,podrian resubirlo de nuevo por favor?

Saludos!

Re: WMI Code creator (Quizá un poco fuera de tema)

Publicado: 30 Mar 2011, 07:56
por Ximorro
Te lo adjunto aquí: