Inicio > Componentes, Delphi, GLibWMI, Programación, WMI > Componentes GLibWMI

Componentes GLibWMI

Viernes, 8 de enero de 2010 Dejar un comentario Ir a comentarios

GLibWMI es una librería/biblioteca de componentes enfocados a la Administración de Sistemas Windows.
Están basados en la WMI de Windows (Windows Management Instrumentation). Podéis conocer algo más sobre WMI en la entrada del blog titulada “WMI – Introducción“.

_________________________________________________________

ACTUALIZACIÓN:  1o/09/2014.

Liberada la Versión 2.1b.

Nuevas propiedades en los componentes y algunos errores corregidos.

Además la librería se ha compilado con Delphi XE7 sin problemas.

ejemplos_thumb.png

<DESCARGAR LIBRERÍA COMPLETA>

<DESCARGAR SOURCE DEMOS>

<DESCARGAR EXE DEMOS>

_________________________________________________________

ACTUALIZACIÓN:  01/08/2013.

Liberada la Versión 2.0b.

Nuevos componentes añadidos (BootConfigurationInfo, DesktopInfo CodecsInfo, RegistryInfo, TimeZoneInfo) y corrección de algunos bugs.
Compilado para las nuevas versiones de Delphi, incluídas XE4 y XE5.

 Versión 2.0 GLibWMI

<DESCARGAR LIBRERÍA COMPLETA>

<DESCARGAR SOURCE DEMOS>

<DESCARGAR EXE DEMOS>

_________________________________________________________

ACTUALIZACIÓN:  23/02/2010.

Liberada la Versión 1.8b.

Nuevos componentes añadidos y corrección de algunos bugs; Correción en la recuperación de propiedades y algunas pérdidas de memoria.

Actualizadas las demos con los nuevos componentes.

Como la anterior verión, los últimos cambios están subidos en Sourceforge (GLibWMI).

<Descargar librería completa;  Sources+Bin>

<Descargar demos; Sources+Bin>

<Descargar demos; Bin>

_________________________________________________________

ACTUALIZACIÓN:  22/01/2010.

Versión 1.6b.

He subido el proyecto a Sourceforge (GLibWMI). La ultima versión estará disponible allí para su descarga.

Se distribuye con licencia GNU y todos los ficheros (incluídos los fuentes se pueden descargar).

Descargar ficheros:

<GLibWMI completa 1.6b>
<GLibWMI demos 1.6b>
<GLibWMI EXE demos 1.6b>

_________________________________________________________

La librería está en fase beta y se puede usar de forma libre y gratuíta.

Las versiones actuales están disponibles (ficheros compilados) para D6, D7 y D2009.

Se pueden descargar diferentes paquetes:

<GLibWMI>
<GLibWMI para Delphi 6>
<GLibWMI para Delphi 7>
<GLibWMI para Delphi 2009>
<Demos compiladas>>

Funciona sin problemas en sistemas basados en Windows 2000 y posteriores.
Para más información consultar:
Operating System Availability of WMI Components

Como bien he dicho, están en fase beta, así que se aditen sugerencias, errores, comentarios,…

Un saludo.

  1. Alin Sfetcu
    Martes, 19 de enero de 2010 a las 10:42 | #1

    When runnning the general demo (the compiled executable) on W7 Ultimate x64 I get an AV when try to see ProcessorInfo or OperatingSystemInfo information. Ulterior calls to those 2 categories work without problem.

    Thank you for this release. The component pack looks great, pity there is no source code available. Because of that, to use this components in a application is a hard to make decision.

    Again thank you

  2. Neftalí
    Miércoles, 20 de enero de 2010 a las 10:46 | #2

    Hello Alin.
    Thanks for your comments.
    I tried the demo on Windows 7 and I got the same error AV. The first time occurs the error, the following is working properly.
    I will look if it is due to component or to the demo.

    For now, the package is in beta version. Finally it will be distributed for free to be used freely.
    I’m still spending if the code is also freely distributed.

    Regards.

    Excuse for my bad english.

  3. DrKiroCorp
    Miércoles, 3 de febrero de 2010 a las 10:49 | #3

    Hola, que tal, que maravilla de componentes, si los hubiese visto antes no que ya me arranque los pelos con la pura WMI jeje, bueno te comento que trabajando con el componente TDiskDriverInfo si me otorga la información que debe de ser pero cada vez que se ejecuta, es decir, se activa la aplicación aumenta la cantidad de memoria utilizada (en el administrador de tareas) entonces con agregar un _Release a la variable SObject en el UProcedure.pas y en el siguiente procedimiento al final del bucle while, se sigue ejecutando pero sin aumentar la cantidad de la memoria utilizada, saludos

    procedure GetWMIProperties(AIndex:integer; {0-TODOS 1-Primero 2-segundo 3…}
    Services:ISWbemServices; wmiClass:string;
    var aProperties:TStrings);
    var
    SObject: ISWbemObject;
    ObjSet: ISWbemObjectSet;
    Enum: IEnumVariant;
    TempObj: OleVariant;
    Value: Cardinal;
    i: integer;
    begin

    // proteccion a problemas
    try

    // realizar la consulta
    ObjSet := Services.ExecQuery(‘SELECT * FROM ‘+wmiClass, ‘WQL’,
    wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
    // Lista de objetos
    Enum := (ObjSet._NewEnum) as IEnumVariant;

    if (AIndex 0) then begin
    i := 1;
    // Recorrer la lista
    while (i AIndex) do begin
    Enum.Next(1, TempObj, Value);
    inc(i);
    end;
    end;

    // Recorrer la lista
    while Enum.Next(1, TempObj, Value) = S_OK do begin

    // Access al objeto
    try
    SObject := IUnknown(TempObj) as ISWBemObject;
    except
    SObject := nil;
    end;

    // Encontrado?
    if (SObject nil) then begin
    // Acceder a la propiedad
    SObject.Properties_;
    aProperties.Add(SObject.GetObjectText_(0));
    end;

    if (AIndex 0) then begin
    Exit;
    end;
    SObject._Release; <—–agregando esta linea ya no se acumula la-
    end; cantidad de memoria utilizada por la app.

    finally
    // Nada (pendiente)
    end;
    end;

  4. Neftalí
    Miércoles, 3 de febrero de 2010 a las 11:11 | #4

    @DrKiroCorp

    Hola DrKiroCorp.
    Gracias por el comentario, lo tendré en cuenta para esta próxima release.
    La verdad es que tengo pendiente revisar tódo el código con algun profiler para detectar este tipo de fallos.

    Gracias de nuevo.

    Un saludo.

  5. victor
    Jueves, 27 de mayo de 2010 a las 05:44 | #5

    Hola Neftali.

    Instale tu componente 1.8b en D2009, pero al ejecutar las demos, no encuentra el CWMIBase.dcu

    Que me falta,

    Gracias

  6. Neftalí
    Viernes, 28 de mayo de 2010 a las 07:13 | #6

    Hola Victor.
    Pues es raro, porque debería compilar perfectamente. De todas formas esa unit está incluida en los fuentes, así que lo que debes hacer es añadir el directorio donde se encuentra al path de búsqueda.
    Entra en las opciones del proyecto y en los directorios de búsqueda de los Sources añade ese.

  7. yyimen
    Miércoles, 16 de junio de 2010 a las 16:00 | #7

    UProcedures
    286-> if (index 0) then begin
    if (index = 1) then begin

  8. Neftalí
    Miércoles, 16 de junio de 2010 a las 16:14 | #8

    @yyimen
    Hola yyimen.
    ¿Puedes explicar un poco mejor esto que me comentas?
    Can you explain better this change, please?

    Gracias/thanks.

  9. Kurono
    Viernes, 18 de junio de 2010 a las 04:27 | #9

    hola neftali uso tu paquete GLibWMI pero quiero saber si puedes agragarle un componente para el control de las RPM de los fan tanto del cpu como los de case

  10. Neftalí
    Viernes, 18 de junio de 2010 a las 10:15 | #10

    @Kurono
    Hola Kurono.
    Puedo generar el componente, pero me tendrías que echar una mano para hacer unas pruebas.
    He hecho un pequeño proyecto de ejemplo para probar la clase Win32_Fun (http://msdn.microsoft.com/en-us/library/aa394146%28VS.85%29.aspx) que es la que debería devolver la información de ventiladores, pero en mi caso (mi ordenador) no obtengo nada. Supongo que esto depende directamente de la placa y la onformación que esta ofrezca a la WMI.
    El problema es que no se si es problema del componente o de mi ordenador. ¿Podrías probar el ejemplo que te comento?

    Se trata de un proyecto Delphi, comprimido que hay aquí:
    http://neftali.clubdelphi.com/files/PtestVentiladores.rar

    En mi caso obtengo esta imagen al arrancar el proyecto:
    http://neftali.clubdelphi.com/files/Imagen360.png

    Significa que la clase Win32_Fan no ha devuelto ningun elemento. ¿Puedes probar a ver si obtienes algo de información?

    Un saludo.

  11. Kurono
    Miércoles, 23 de junio de 2010 a las 03:05 | #11

    hola neftali probe la aplicacion en una latop dell c610 y me devolvio resultados lo puedes ver aqui
    http://www.subirimagenes.net/show-image.php?id=c7ee6304edba1a3f087dee2a2c31754e

  12. Kurono
    Lunes, 20 de septiembre de 2010 a las 02:09 | #12

    hola neftali quisiera saber que has hecho con el componente de control de los Ventiladores que te habia solicitado no se si has tenido la oportunidad de ver la imagen que te envie en mi ultimo comentario

  13. Neftalí
    Lunes, 20 de septiembre de 2010 a las 08:05 | #13

    Hola Kurono.
    He visto la imagen, pero como ves no da imformación de la velocidad de giro de los ventiladores (RPM). De ahí que no te comentara nada más.

    Un saludo.

  14. Kurono
    Lunes, 20 de septiembre de 2010 a las 23:55 | #14

    entonces no hay forma de crear la libreria para controlar las rpm

  15. Neftalí
    Martes, 21 de septiembre de 2010 a las 09:24 | #15

    @Kurono
    Hola Kurono.
    Parece que con las clases básicas de WMI no es posible. Por otra parte, la forma de acceso a los sensores de cada placa es diferente, de ahí que tenga sentido que no exista un método genérico de acceder.
    Eso no quiere decir que definitivamente no se pueda.
    Hay varias opciones.
    * La primera (siguiendo con WMI): Es habitual y posible que distintos componentes del ordenador o programas de software (sus proveedores) puedan añadir clases WMI para consultar las propiedades de sus productos. Podrías leer la documentación de tu placa para ver si esto es así.
    * La segunda es sin utilizar WMI; Revisar la web del fabricante de la placa a ver si pone a disposición para descarga algun ActiveX, DLL o similar para poder acceder a esa información.

    Siento no poder ayudarte más, pero GLibWMI es una librería que accede a las propiedades de WMI. Si WMI no publica la información, GLibWMI no puede consultarla.

    Un saludo.

  16. Kurono
    Miércoles, 22 de septiembre de 2010 a las 18:40 | #16

    ok gracia neftali investigare si existe alguna dll o algo parecido sobre mi placa base

  17. Lunes, 27 de septiembre de 2010 a las 21:28 | #17

    Hola neftalí, el día de hoy estuve buscando como obtener la información del disco duro hasta que he llegado a tu web. de verdad muy buenos el set de componentes. haz hecho un estupendo trabajo.

    Al compilar el programa con el DiskDriveInfo sobre Win7 con Delphi 2010 todo marchó muy bien.

    Luego llevé este ejecutable a una maquina virtual (Oracle VM VirtualBox corriendo WinXP) y no corria el aplicativo. haciendo un debug remoto del programa obtuve el siguiente error:

    EDOMParseError “El documento XML debe tener un elemento de nivel superior”

  18. Lunes, 27 de septiembre de 2010 a las 21:50 | #18

    @movorack
    El error que comenté anteriormente sucedia por un error en el archivo (XML) de configuración de mi programa.

    aunque al correr el programa, y llamar la función (debe ser por estar en una maquina virtual) no me devuelve información del disco duro.

  19. Neftalí
    Martes, 28 de septiembre de 2010 a las 09:17 | #19

    @movorack
    Hola movorack.
    Los datos que devuelven los componentes, son los que Windows obtiene del sistema vía WMI. Los diferentes sistemas implementan diferentes propiedades, así que es normal, por ejemplo, que en Vista obtengas más información que en XP, o que en W7 obtengas más que en Vista y XP. En general, a cada versión más nueva del S.O. las propiedades de cada clase se amplían.

    Me extraña lo de la máquina virtual, porqu yo mismo las utiliza muy a menudo para pruebas y en concreto para probar los componentes en diferenes versiones de Windows.
    En mi caso utilizao también VirtualBox y a mí sí me devuelve info.
    Aquí puedes ver una imagen: http://tinyurl.com/36lf2f3

    Lo que puede pasar es que en algunas versiones, como te he dicho haya propiedades que no se rellenan. En el caso del SerialNumber, por ejemplo, si miras la definición de la clase: http://tinyurl.com/c2ap3b
    verás que esa propiedad sólo está disponible a partir de Vista.
    Esto puede pasar con otras y debe estar explicado en la definición de cada clase.

    Un saludo.

  20. Walter
    Domingo, 10 de octubre de 2010 a las 15:36 | #20

    Hola German
    Probé el componente y lo hice andar en XP perfectamente
    y de hecho me hice varias rutinas de seguridad de mi sistema en base a
    resultados obtenidos por tus componentes.
    Pero… Reinstalé win (Win seven pro 32)
    Primero me decia [DCC Fatal Error] main.pas(11): F1026 File not found: ‘CWMIBase.dcu’
    Bueno agregué al path, luego me dice:
    [MakeDir Error] Unable to create directory “c:\Archivos de programa\Borland\Delphi6\Tools\Developer Express Inc\dcus\”. Access to the path ‘c:\Archivos de programa\Borland\Delphi6\Tools\Developer Express Inc\dcus\’ is denied.

    Y no compila el componente. Yo Delphi6 jamás usé, así que asumo que
    deben ser tus componentes, pero no encuentro donde o por qué busca
    esa ruta. Asi que si tienes alguna solución rapida me la pasas pls,
    yo de igual forma seguiré probando y leyendo a ver si alguien lo
    solucionó o como hacer para corregir esto.

    Muchisimas gracias. Tu trabajo está genial.
    Un abrazo!
    Walter

  21. Neftalí
    Domingo, 10 de octubre de 2010 a las 18:54 | #21

    Hola Walter.
    Estos problemas suelen ocurrir porque ha quedado alguna configuración guardada de cuando yo trabajaba con los componentes. En concreto el error de “Unable to create directory” es porque en el directorio de salida de los DCU’s se debe haber quedado puesto este:
    “c:\Archivos de programa\Borland\Delphi6\Tools\Developer Express Inc\dcus\”

    Entra en las opciones del DPK (package) y en los directorios de salida de DCU estará este. Basta con que lo elimines y deberías poder compilar sin problemas.

    Ya me dirás si se ha solucionado.

    Un saludo.

  22. Walter
    Lunes, 11 de octubre de 2010 a las 01:48 | #22

    Nuevamente yo German, sorry pero no podia esperar mucho
    creé manualmente la carpeta:
    C:\Archivos de programa\Borland\Delphi6\Tools\Developer Express Inc\dcus\
    Se que no deberia, pero nose porque crea esa carpeta al compilar y crea ahi todos los .dcu. Quizas en XP estaba pero no me di cuenta y en seven
    no tiene permiso de creación y entonces Chan el Error!.
    Bueno seguiré probando, pero creo que ya quedó. Cualquier cosa te comento.
    Actualmente estoy usando DISKInf.DiskDriveProperties.Signature y CPUInf.ProcessorProperties.ProcessorID quisiera saber si se puede generar algo reducido con esto, ya que es un poco pesado todo en
    ordenadores viejos.
    Nuevamente muchisimas gracias por tu excelente material
    Walter

  23. Neftalí
    Lunes, 11 de octubre de 2010 a las 08:26 | #23

    Hola Walter.
    Como te he dicho, puedes configurar esos directorios en las opciones del proyecto.
    En cuanto a generar algo reducido como tú dices, estoy trabajando en un componente para lanzar sentencias SQl a WMI, con lo que se podrán pedir datos individuales (como los que necesitas). Espero que esté disponible en breve, pero por ahora hay que hacerlo como lo estás haciendo ahora.

    Un saludo.

  24. Montipyton
    Jueves, 25 de noviembre de 2010 a las 18:10 | #24

    Primero de todo felicitarte por tu magnífico trabajo. Y segundo comentante un pequeño fallo que he detectado al usar el componente TProcessInfo.

    El error se produce al intentar hacer un Terminate sobre un proceso por el ProcessID ya que por la forma de extraer las propiedades, el componente devuelve como ProcessID el ParentProcessID, con lo que la ejecución del Terminate no termina con exito.

    Te dejo un fragmento de código de como lo he modificado yo:

    Unidad: UProcedures.
    procedure GetWMIPropertyValue

    function _ExtractValue(Data:string):string;
    var
    str:string;
    index, i:integer;
    TS:TStrings;
    begin
    Result := ”;
    TS := TStringList.Create();
    try
    TS.Text := StrInfo;

    // Recorrido por las propiedades
    for i := 0 to (TS.Count – 1) do begin
    // Cadena
    Str := Trim(TS[i]);
    index := AnsiPos(Data + ‘ = ‘, Str);
    if (index = 1) then begin <—– esta linea era index0

  25. Neftalí
    Jueves, 25 de noviembre de 2010 a las 18:43 | #25

    @Montipyton
    Hola “Montipyton”.
    Gracias por el comentario. me lo apunto. En breve espero sacar la nueva versión y añadiré este bug a los que ya tengo corregidos.

    Un saludo.

  26. Logman
    Domingo, 12 de diciembre de 2010 a las 04:29 | #26

    TStartupCommandInfo sólo devolverá 32 entradas de lanzamiento poco y no ninguna de las entradas de la colmena de 64 bits. ¿Hay una bandera? ¿Puedo solicitar uno o el otro? o ambos?

    http://support.microsoft.com/kb/305097
    http://msdn.microsoft.com/en-us/library/aa393067 (v = vs.85). aspx

    por cierto, un gran conjunto de componentes gracias
    lo siento si esto no se traduce bien, yo no sé español (pero Google lo hace)

  27. Logman
    Domingo, 12 de diciembre de 2010 a las 04:50 | #27

    Logman :
    TStartupCommandInfo sólo devolverá 32 entradas de lanzamiento poco y no ninguna de las entradas de la colmena de 64 bits. ¿Hay una bandera? ¿Puedo solicitar uno o el otro? o ambos?
    http://support.microsoft.com/kb/305097
    http://msdn.microsoft.com/en-us/library/aa393067 (v = vs.85). aspx
    por cierto, un gran conjunto de componentes gracias
    lo siento si esto no se traduce bien, yo no sé español (pero Google lo hace)

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

  28. Logman
    Domingo, 12 de diciembre de 2010 a las 04:52 | #28

    Logman :

    Logman :
    TStartupCommandInfo sólo devolverá 32 entradas de lanzamiento poco y no ninguna de las entradas de la colmena de 64 bits. ¿Hay una bandera? ¿Puedo solicitar uno o el otro? o ambos?
    http://support.microsoft.com/kb/305097
    http://msdn.microsoft.com/en-us/library/aa393067 (v = vs.85). aspx
    por cierto, un gran conjunto de componentes gracias
    lo siento si esto no se traduce bien, yo no sé español (pero Google lo hace)
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
    Wow6432Node las entradas no se devuelven

  29. Logman
    Domingo, 12 de diciembre de 2010 a las 04:55 | #29

    TStartupCommandInfo sólo devolverá 32 entradas de lanzamiento poco y no ninguna de las entradas de la colmena de 64 bits. ¿Hay una bandera? ¿Puedo solicitar uno o el otro? o ambos?
    http://support.microsoft.com/kb/305097
    http://msdn.microsoft.com/en-us/library/aa393067 (v = vs.85). aspx
    por cierto, un gran conjunto de componentes gracias
    lo siento si esto no se traduce bien, yo no sé español (pero Google lo hace)
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
    Wow6432Node las entradas no se devuelven

  30. Neftalí
    Lunes, 13 de diciembre de 2010 a las 10:23 | #30

    @Logman
    Hello LogMan.
    You can try search help about the properties “__ProviderArchitecture” and “__RequiredArchitecture”. I think that with this properties you can configure the access to 32 or 64 architecture.

    Regards.

  31. Casacham
    Sábado, 22 de enero de 2011 a las 21:28 | #31

    Excelente trabajo. Esto en realidad a mi me sirve para estudiar el codigo. Con esto tengo para unas largas semanas de estudio. Muchas gracias por tu aporte.

  32. patricio fica
    Miércoles, 26 de enero de 2011 a las 18:12 | #32

    Nada más que felicitarte…
    Gracias por tu aporte.

    Patricio Fica

  33. Luis Fuentes
    Lunes, 28 de marzo de 2011 a las 20:46 | #33

    Felicitaciones por este componente. Llegue a el buscando alguna aplicación en Delphi que me informara la temperatura del cpu,pero no la consigo en GLibWMI, realmente no la tiene o donde se encuentra? Gracias.

  34. Neftalí
    Martes, 29 de marzo de 2011 a las 08:54 | #34

    @Luis Fuentes
    Hola Luis.
    El tema de los sensores de Hardware es complicado, porque varía segun el Hardware de la máquina. Me explico. WMI tiene un gran númerode clases “base” que hay en todos los equipos. A partir de ahí, cada versión del sistema incluye clases nuevas, pero no sólo eso, sino que (como pasa por ejemplo en muchas clases de Hardware), puede ser que un determinado componente o la empresa que lo fabrica e instala el software en el sistema (Procesador, ventiladores, Placa base,…) cree nuevas clases WMI que se pueden utilizar.
    Por eso es posible que las clases WMI de un equipo no sean las mismas de otro.

    Busca documentación sobre WMI y sobre las clases de HardWare (GLibWMI implementa sólo unas cuantas) y tal vez encuentres otra clase que te permita obtener la temperatura. Si la encuentras, puedes revisar los ejemplos que acompañan la librería y verás que no es difícil obtener información del resto de clases.
    O si te hace falta algun ejemplo más me lo pides y te puedo pasar varios sobre diferentes clases (diferentes de las incluídas en GLibWMI).

    Un saludo.

  35. cargem
    Viernes, 29 de julio de 2011 a las 14:31 | #35

    problem when install GLibWMI 1.8
    [IMG]http://img691.imageshack.us/img691/2121/picture0001m.png[/IMG]

  36. Neftalí
    Viernes, 29 de julio de 2011 a las 14:49 | #36

    @cargem
    Hello cargem.
    There are another package with a form (FormAbout) that have the same name (and registered).

    (option 1) Uninstall the other package and test.
    (option 2) Edit the form in GlibWMI library, change tha name and compile. For example, change the name for FormAboutGLibWMI.
    If you compile and get some error about this, you only must update the old name FormAbout for the new name FormAboutGLibWMI.
    Test it.

    Regards.

  37. borato
    Jueves, 3 de mayo de 2012 a las 23:09 | #37

    Hola, estoy usando la versión 1.8 para recuperar la serie HD (DiskDriveInfo1.DiskDriveProperties.SerialNumber), pero cuando se ejecuta la aplicación en Windows XP devuelve una cadena vacía.
    Ellos sabrían decir por qué ocurre esto, si no hay corrección?
    ¡Gracias!

  38. Neftalí
    Viernes, 4 de mayo de 2012 a las 09:03 | #38

    @borato

    Hola Elisenda.

    La clase DiskDrive de WMI:
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa394132(v=vs.85).aspx

    sólo permite recuperar el serial para determinados sistemas operativos:

    ———————————————————————————————————-
    SerialNumber
    Data type: string
    Access type: Read-only

    Number allocated by the manufacturer to identify the physical media.

    Example: WD-WM3493798728

    Windows Server 2003, Windows XP, Windows 2000, and Windows NT 4.0: This property is not available.
    ———————————————————————————————————-

    Si necesitas hacerlo para sistemas más antiguos puedes usar otros métodos, como el componentes TDiskInfo:

    http://neftali.clubdelphi.com/?p=240

    Si buscas en internet hay otras alternativas similares. Si combinas ambos puedes hacerlo para todos.

    Un saludo.

  39. Jueves, 29 de noviembre de 2012 a las 08:35 | #39

    ¿Alguien ha probado estos componentes con Delphi XE3? ¡Saludos!

  40. gleury
    Domingo, 31 de marzo de 2013 a las 14:05 | #40

    Seria otimo se ouvesse uma atualização no componente

  41. Neftalí
    Martes, 2 de abril de 2013 a las 08:10 | #41

    @Eddie
    @gleury

    Hola.
    No debería haber problemas para que los componentes pudieran compilar en las últimas versiones de Delphi.

    Un saludo.

  42. jonatan
    Lunes, 15 de abril de 2013 a las 17:50 | #42

    saludos Neftali

    la funcion
    ddProps.SerialNumber
    no me devuelve nada o cadena vacia

  43. Neftalí
    Lunes, 15 de abril de 2013 a las 18:41 | #43

    @jonatan
    Tal como explica la API (y en los comentarios anteriores), la función SerialNumber no funciona en todas las versiones de Windows.
    ¿Con qué versión estás trajando?

  44. jonatan
    Domingo, 21 de abril de 2013 a las 23:05 | #44

    La probe en windows xp, no hay forma usar un componente que funciones en xp y en 7??

  45. Neftalí
    Lunes, 22 de abril de 2013 a las 09:21 | #45

    @jonatan

    Revisa los comentarios anteriores; En concreto este:
    http://neftali.clubdelphi.com/?p=589#comment-6508

    Ahí están las versiones en las que funciona.

  46. Andres Salazer
    Lunes, 10 de junio de 2013 a las 21:04 | #46

    Hola me pueden ayudar porfavor estoy iniciandome en delphi y eh logrado hacer un sistema de logueo estoy estudiando actualmente y es para un trabajo para la escuela este sistema de logueo requiere de autenticar el ID del procesador este proyecto lo tiene pero no logro instalar los controles y mucho menos poder abrir los proyectos ya que me pide dichos controles quisiera porfavor si en un form me pueden separar el processor ID con su label y textbox muchas muchas gracias!!

  47. Neftalí
    Martes, 11 de junio de 2013 a las 08:04 | #47

    @Andres Salazer
    Hola Andrés.
    Una vez descargada la versión completa del paquete de componentes (que incluye los fuentes), descomprímelo en un directorio y abre el fichero de proyecto (DPK o DPROJ, dependiendo de la versión de delphi).
    Compila e instala los componentes. Si te da algun error de que no encuentra fuentes, deberás añadir los directorios de fuentes al path de búsqueda (opciones de proyecto).

    Un saludo.

  48. Luis
    Martes, 8 de octubre de 2013 a las 02:56 | #48

    to work in Delphi XE changed the conditional compiler
    “CompilerVersion> = 16.0″ to “CompilerVersion> = 23.0″
    right?

  49. Neftalí
    Martes, 8 de octubre de 2013 a las 08:54 | #49

    @Luis

    Thanks for this puntualization Luis.

  1. Domingo, 24 de enero de 2010 a las 20:09 | #1
Escribe la palabra "humano" en el cuadro/Write the word "humano" in answer.
Please leave these two fields as-is:
IMPORTANTE! Para continuar, debes contestar la pregunta anterior (para evitar SPAM) :-)