Inicio > Delphi, GLibWMI > Versión 2.0 (beta) de la librería GLibWMI

Versión 2.0 (beta) de la librería GLibWMI

Share Button

Hace tiempo que algunos de vosotros me habéis comentado que trabajáis en las últimas versiones de Delphi con la librería GLibWMI. Con pocos cambios se puede conseguir que estos componentes funcionen perfectamente en la nuevas versiones.

En concreto esta versión está compilada con XE4 y anteriores.

Aquí tenéis una imagen de la paleta de componentes (D6).

PaletaComponentesv2

Os adjunto un pequeño resumen de los cambios y modificaciones introducidos.

COMPONENTES MODIFICADOS

Se ha añadido lo necesario para que la librería funcione correctamente en versiones posteriores a Delphi XE2. Incluida la próxima XE5.

Se han añadido nuevas propiedades al componente NetworkAdapterInfo.

Corregidos errores menores en el componentes ProcessInfo.

 

 

NUEVOS COMPONENTES

Se ha añadido a la librería nuevos componentes, que siguen la estructura de los existente para acceder a más clases de WMI. Además un componente genérico (en su primera versión) que nos permite acceder por SQL a cualquier clase de WMI (para las no existentes entre los componentes).

BootConfigurationInfo: Componente para acceder a la configuración de “boot” de un ordenador que ejecuta un sistema Windows.

CDROMDriveInfo: Permite acceder a la información de una unidad de CD-ROM existente en un ordenador con Windows.

CodecFileInfo: Permite acceder a la información de todos los codecs (compres/decompress) de audio o video instalados en el equipo.

DesktopInfo: Permite acceder a las características comunes de escritorio de un usuario. Las propiedades de esta clase pueden ser modificados por el usuario para personalizar el escritorio.

RegistryInfo: Permite acceder a las propiedades de la clase que representa al registro de windows de la máquina.

TimeZoneInfo: Componente para acceder a la clase Win32_TimeZone, que representa la información de zona horaria para un ordenador con Windows, que incluye los cambios necesarios para realizar la transición entre cambios horarios.

Componente SQL : Componente para acceder de forma genérica a las propiedades de WMI.

Una imagen de la demo general con todos los componentes:

Demo general

DESCARGA

Podéis descargar la última versión desde la sección dedicada a la librería.

Como siempre cualquier sugerencia  y comentario será bienvenido.

Un saludo.

Share Button
Categories: Delphi, GLibWMI Tags: , ,
  1. jueves, 1 de agosto de 2013 a las 13:26 | #1

    Gracias Germán, nunca se sabe si estos componentes (o sea tu trabajo) podrá resultarnos útil en el futuro, aunque, si uno necesita información sobre el sistema sin duda parece ser una buena forma de conseguirla. :)

  2. Neftalí
    jueves, 1 de agosto de 2013 a las 15:17 | #2

    @dec
    Hola David.
    Pues eso espero, que le sean útiles a alguien. De esa forma el trabajo realizado será más gratificante. ;-)
    Un saludo.

  3. sábado, 3 de agosto de 2013 a las 01:22 | #3

    Hola Germán.

    Leí en Club Delphi algo sobre lograr compilar GLibWMI en Delphi 7. Así que lo puse en la agenda para intentar ayudar con eso este fin de semana. Lo extraño es que ya no aparece el hilo donde se mencionaba esta cuestión, ¿alguna razón por la cual desapareció? A mí me parecía una muy buena noticia.

    Bueno, puede que esto me lleve algo de tiempo por no disponer de mucho, pero lo primero que hice fue descargar la versión 2.0b de la biblioteca (si fuera conveniente comenzar con otra, sólo indicarme cuál).

    Veo que no hay mucho problema para compilar unas cuantas unidades que ya puse en un Uses a manera de prueba. Pero me llama la atención que utilizas ámbitos de unidades (“unit scopes”) a partir de la versión 8 de Delphi, siendo que los ámbitos de unidades surgieron hace poco tiempo (en XE2, si no me equivoco).

    Bueno, ya me dirás por dónde dirigir este pequeño esfuerzo. Si necesitas que pruebe algo en concreto, sólo decirme, estaré cerca.

    Un saludo.

    Al González.

  4. sábado, 3 de agosto de 2013 a las 09:40 | #4

    @Al González
    Hola Germán, yo de nuevo. :)

    Todo salió bien con la compilación en Delphi 7. El demo PGenericTest parece ejecutarse bien (Windows XP), sólo se necesitó comentar la línea “tkUString: s.add(EvalStringProperty(PropInfo))” de la unidad OI.pas, dado que tkUString, como sabes, es una constante referente a Unicode.

    Me avisas sobre cualquier otra cosa en la que pueda ayudar.

    Saludos.

    Al González.

  5. Neftalí
    lunes, 5 de agosto de 2013 a las 19:45 | #5

    @Al González

    Hola Alberto.
    De antemano, te agradezco el interés.
    En cuanto al tema y su desaparición, fue un error por mi parte. Con la intención de moverlo de un foro a otro (y borrar uno que inicialmente había repetido), parece que los eliminé los 2.
    Ya está restaurado aquí:
    http://www.clubdelphi.com/foros/showthread.php?t=83813

    La última compilación la he realizado con una de las versiones nuevas de Delphi, de ahí que puedan aparecer ámbitos de unidades, que eso sí, deberían aparecer con el correspondiente condicional {$IFDEF]} si es que no me he dejado alguno.

    Un saludo.

  6. Neftalí
    lunes, 5 de agosto de 2013 a las 19:47 | #6

    @Al González

    Hola Alberto, de nuevo.
    Gracias por la compilación en Delphi 7. Te agradecería que me enviaras los cambios necesarios para volver a generar los ficheros y subirlos de nuevo.
    Tanto en el código de la librería como en los ejemplos.

    Un saludo y gracias de nuevo.

  7. martes, 6 de agosto de 2013 a las 17:26 | #7

    @Neftalí
    El detalle es que Delphi 2007, 2009, 2010 y varias otras no reconocerán las referencias “System.Classes”, “VCL.Controls”, etc.

    http://docwiki.embarcadero.com/RADStudio/XE4/en/Compiler_Versions

    Esa tabla de versiones puede resultar un poco confusa. CompilerVersion 16.0 se refiere a la versión 16 del compilador (Delphi 8), no a la versión 16 de Delphi. :)

    Por lo cual creo que, en lo referente a ámbitos de unidades, en lugar de:

    {$IF CompilerVersion >= 16.0}

    debe ser:

    {$IF CompilerVersion >= 23.0} // Delphi XE2 y posteriores

    Espero haberme explicado.

    Saludos. :)

  8. martes, 6 de agosto de 2013 a las 17:32 | #8

    @Neftalí
    En cuanto a los cambios que hubo que hacer para compilar, la biblioteca no necesitó ninguno. Sólo el programa demo requirió que se comentara la línea que mencioné antes de la unidad OI.pas:

    “tkUString: s.add(EvalStringProperty(PropInfo))”

    Saludos.

  9. Neftalí
    martes, 6 de agosto de 2013 a las 18:08 | #9

    @Al González

    Ok. Gracias.

    Un saludo.

  10. Neftalí
    martes, 6 de agosto de 2013 a las 18:13 | #10

    Esa tabla de versiones puede resultar un poco confusa.

    * CompilerVersion 16.0 se refiere a la versión 16 del compilador (Delphi 8), no a la versión 16 de Delphi. :)


    * Debe ser:
    {$IF CompilerVersion >= 23.0}

    Tienes razón Alberto. Debo cambiarlo.

    Gracias de nuevo.

  1. Sin trackbacks aún.
What is 29 + 26 ?
Please leave these two fields as-is:
IMPORTANTE! Para continuar, debes contestar la pregunta anterior (para evitar SPAM) :-)