Inicio > Componentes > Componente TDiskInfo

Componente TDiskInfo

viernes, 27 de febrero de 2009 Dejar un comentario Ir a comentarios
Share Button

Este componente permite para recuperar información diversa sobre los Discos existentes en el de sistema; Discos duros, diskettes, discos de red, discos RAM… Colóquelo en un formulario y defina la letra del disco.

Puede recuperar la información sobre:

  • Volumem; Etiqueta, número…
  • Serial number (no número de volumen)
  • Espacio; Libre, total, ocupado.
  • Icono del suistema
  • Nombre en el Explorer y descripción
  • Tipo de disco
  • Sistema de ficheros
  • Clusters, Sectores,…

  • Incluye código fuente
  • Incluye EXE (demo)

Historial:

(version 1.2)
Corrected bug at retrive Serial number (not volume number) from various disks.

Download Descargar componente

Vota este post
Categories: Componentes Tags: ,
  1. Robson Dantas
    sábado, 7 de marzo de 2009 a las 05:33 | #1

    Texto em portuguese – Brazil:

    Pegar Número Serial do PenDrive:
    http://scissec.scis.ecu.edu.au/conference_proceedings/2007/forensics/23_Luo_Tracing_USB_Device_artefacts_on_Windows_XP.pdf

    Colocar no TDiskInfo

  2. Neftalí
    lunes, 9 de marzo de 2009 a las 09:20 | #2

    Gracias Robson por el comentario.
    Lo tendré en cuenta para próximas versiones.

    Un saludo.

  3. lunes, 23 de marzo de 2009 a las 00:34 | #3

    GRACIAS POR SU GRAN APORTE, EN VERDAD QUE GRACIAS…

  4. lunes, 23 de marzo de 2009 a las 00:37 | #4

    MUY BUEN APORTE, EXCELENTE APLICACION, HAY MIL APLICACIONES QUE SON PAGADAS, PERO TU APORTE ME FUE DE MUCHA AYUDA, GRACIAS…

  5. Neftalí
    lunes, 23 de marzo de 2009 a las 11:09 | #5

    @EDUARDO
    De nada.

    Siempre stoy abierto a posibles mejoras, de todos los componentes de la página. Cualquier corrección, comentario, mejora,… será bienvenida.

    Un saludo.

  6. Carlos Perez
    viernes, 27 de marzo de 2009 a las 00:31 | #6

    El componente diskinfo, no trabaja para disco sata, como se puede resolver esto ??
    Salu2

  7. Neftalí
    viernes, 27 de marzo de 2009 a las 12:10 | #7

    @Carlos Perez
    Hola Carlos.

    Pues yo lo he probado con discos SATA (incluído el mío) y sí me devuelve el serial correcto.
    ¿Te da algun error? ¿No te lo da correcto?

  8. Alzheimer
    domingo, 28 de junio de 2009 a las 03:47 | #8

    tu komponente solo funciona kon diskos lógikos???
    no puedo obtener información del disko físiko komo tal sino de las particiones k le he hecho….

  9. Neftalí
    lunes, 29 de junio de 2009 a las 09:50 | #9

    Hola.
    Efectívamente, tal y como comentas funciona sobre particiones.

    Un saludo.

  10. Octavio Sanchez
    domingo, 9 de agosto de 2009 a las 03:38 | #10

    Se instalamuy bien y me dá toda la información, excepto el numero de serie del disco.

    Me envia este error “”, alguien podria decirme que dahcer para resolverlo.

    Te antemano gracias

  11. Neftalí
    lunes, 10 de agosto de 2009 a las 11:47 | #11

    @Octavio Sanchez

    Hola Octavio.
    Deberías dar más información del S.O., tipo de disco,…

    De otra forma es difícil saber porqué no te está funcionando.

  12. martes, 8 de septiembre de 2009 a las 23:39 | #12

    El componente me había servido de maravilla….pero con vista no funciona ayudaaaaaaaaaaaaaaaaaa

  13. viernes, 18 de septiembre de 2009 a las 16:14 | #13

    Estimado neftali, hace tiempo uso tus componentes, principalmente el HardDiskInfo y recientemente estoy instalando todo lo que usaba antes en XP y Delphi 7 en Vista y Delphi 2009 architect para luego migrar los proyectos y me he encontrado con que el componente HardDiskInfo no funciona bien en vista o bien no lo puedo hacer andar. El problema es que no arroja el Nº de serie del disco. Pero si los demas datos. Has comprobado eso? O será error mío. PD. el demo produce el mismo efecto.

    Otra cosa, me parece que no funciona el link para bajar la Glib completa. de la parte de componentes.

    He buscado en clubdelphi sobre proglemas de glib con vista pero no he visto nada.

    SALUDOS Y EXITOS.

    Amadis

  14. Neftalí
    lunes, 21 de septiembre de 2009 a las 11:25 | #14

    Hola.
    Tengo pendiente revisar los componentes en Windows 7 y con el nuevo Delphi 2010.
    Cuando tenga resultados los postearé.

    Gracias por el aviso; He corregido en enlace.

    Un saludo.

  15. GREKO
    domingo, 31 de enero de 2010 a las 01:53 | #15

    Tengan en cuenta que deben de poner el archivo IDESN.dll junto con el .exe para que tome el numero de serie fisico

  16. Neftalí
    lunes, 1 de febrero de 2010 a las 08:59 | #16

    @GREKO
    Gracias Greko, por el comentario.
    Tal vez me pareció tan obvio que olvidé comentarlo.

  17. Luis
    domingo, 4 de abril de 2010 a las 03:39 | #17

    Hola, el componente no me funciona en Windows Vista/7, Delphi 7 arranca normalmente, me gustaria saber si existe una version mas actual compatible con vista o seven.

  18. jueves, 15 de abril de 2010 a las 18:09 | #18

    Hola Neftalí. Gracias por este maravilloso aporte :) Pero me uno al club de “no funciona en vista / 7″ . Probé a darle compatibilidad con xp, ejecutar como administrador, desde la propia cuenta de administrador. Pero nada, no da el número de serie del HD.

    No da ningún otro problema, ni se bloquea…nada. Tan solo que no da el número de serie. Y tengo todo correcto, tal y como me funciona en XP.

    Gracias otra vez, un saludo…”maiquemasque”

  19. Salvador
    miércoles, 12 de enero de 2011 a las 17:22 | #19

    Efectivamente todo funciona perfectamente en WIN 7 a ecepcion del número de serie, un saludo Neftali. :D

  20. Neftalí
    miércoles, 12 de enero de 2011 a las 17:50 | #20

    Para las versiones nuevas de Windows, creo que no es la mejor manera de calcular el número de serie, ya que las modificaciones que se hacen invalidan en muchos casos consultas de bajo nivel como esta.

    La alternativa que ya he comentado a algun usuario, para los sistemas nuevos, es utilizar el componente TDiskDriveInfo de la librería GlibWMI (http://neftali.clubdelphi.com/?p=589) que podéis encontrar aquí mismo en mi página o en SourceForge (http://sourceforge.net/projects/glibwmi/).

    Estos componentes utilizan WMI y en concreto el que os comento (TDiskDriveInfo) segun la documentación de microsoft posee la propiedad SerialNumber.

    La descripción de la clase y sus propiedades podéis encontrarla aquí:
    http://msdn.microsoft.com/en-us/library/aa394132%28VS.85%29.aspx

    Además la propiedad SerialNumber comenta que no está disponible en los sistemas antiguos (XP, NT4,…) por lo tanto me parece un buen complemento para este componente. combinando ambos métodos puede funcionar sin problemas en todos los sistemas.

    Un saludo.

  21. Jose
    lunes, 7 de mayo de 2012 a las 10:16 | #21

    Buenas Neftali. Tengo un problemita. No se porqué, al componente en el diseño me funciona perfectamente pero si cambio la unidad en tiempo de ejecución me da un access violation.

    Estoy usando Delphi 7 y windows 7, aunque este fallo me ha pasado alguna vez también con xp. Con ese mismo código en otras aplicaciones me ha funcionado.

    Gracias por todo

  22. Jose
    lunes, 7 de mayo de 2012 a las 10:26 | #22

    He creado una aplicación nueva, en el form he añadido el componente. En el diseño como ya te he dicho antes me funciona perfectamente. He añadido un botón al form, y en el evento click he puesto:

    diskinfo1.DriveLetter:=’c’;
    ShowMessage(DiskInfo1.SerialNumber);

    En el momento de asignar la letra de la unidad salta el access violation.
    Esto me trae de cabeza no se por donde meterle mano.

    Gracias.

  23. Neftalí
    lunes, 7 de mayo de 2012 a las 12:00 | #23

    @Jose
    Hola Jose.

    ¿Has probado la demo? ¿En la demo te funciona correctamente?
    Puedes ejecutara paso a paso y ver en qué paso te salta el error. Tienes el código del componente.

    Recuerda que cuando se usan DLL en los proyectos debes hacer una lamada a ShareMem.

    Un saludo.

  24. Jose
    martes, 8 de mayo de 2012 a las 16:57 | #24

    Muchisimas gracias por contestar. La demo si que me funciona. En otra aplicación que hice también, pero no se porqué a en esta aplicación y en otras que he hecho me falla.

    Como se haría lo de sharemem¿¿??

    Miraré de todas formas la demo a ver si veo algo de sharemem.

    Muchisimas gracias por las molestias, de verdad. Un saludo.

  25. Jose
    martes, 8 de mayo de 2012 a las 17:02 | #25

    Ya está, he visto en la demo lo que es el sharemem.

    Muchisimas gracias por todo, de veras. Aquí me tienes para lo que necesites.

    Enhorabuena por todo lo que tienes desarrollado.

    Un abrazo. Cuidate.

  26. dvlt
    viernes, 8 de junio de 2012 a las 10:38 | #26

    Hola Neftalí,
    estoy intentando sacar la calidad de la señal wifi a través de WMI, mi problema es el siguiente, al ejecutar este código me salta una excepción ‘EOleException Incompatible 8004100C’ y no sé a que es debido. Me podrías echar un cable por favor?

    Gracias!

    procedure SignalStrengthValue;
    var
    Locator : ISWbemLocator;
    Services : ISWbemServices;
    ObjectSet : ISWbemObjectSet;
    ObjRet : OleVariant;
    Enum : IEnumvariant;
    SObject: ISWbemObject;
    value : Cardinal;
    SProp: ISWbemProperty;
    begin;
    Locator := CoSWbemLocator.Create;
    Services := Locator.ConnectServer(‘.’, ‘root\wmi’,”, ”, ”,”, 0, Nil);

    ObjectSet:= Services.ExecQuery(‘SELECT * FROM MSNdis_80211_ReceivedSignalStrength’,’WQL’, wbemFlagForwardOnly , nil);
    Enum := ObjectSet._NewEnum As IEnumVariant;

    while (Enum.Next(1, objRet, Value) = S_OK) do
    begin
    sObject := IUnknown(objRet) As ISWBemObject;
    SProp := SObject.Properties_.Item(‘Ndis80211ReceivedSignalStrength’, 0);
    end;

    end;

  1. Sin trackbacks aún.