Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2006
Avatar de n3mohack
n3mohack n3mohack is offline
Miembro
 
Registrado: may 2004
Ubicación: Chile-Stgo-Huechuraba
Posts: 41
Poder: 0
n3mohack Va por buen camino
Smile Obtener información de hardware a través de API's de Windows (no componentes)

Hola estimados,
¿Cuales son las api de windows que proveen acceso a la información del hardware?. Me refiero en tiempo real (no ir a mirar el registro).
Necesito conocer las apis específicas de win y una referencia a sus interfaces, ya que no necesariamente es para acceder desde delphi, puede ser también de .Net, por lo tanto componentes para delphi no me sirven en este caso.

Gracias por sus comentarios!.
__________________
Si es Chileno.. es bueno.
Responder Con Cita
  #2  
Antiguo 06-09-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
mira esto http://msdn.microsoft.com/library/de...tclassdevs.asp en donde el ejemplo es este:

MSDN:

Código:
#include <windows.h>
#include <setupapi.h>
#include <stdio.h>
#include <devguid.h>
#include <regstr.h>

int main( int argc, char *argv[ ], char *envp[ ] )
{
    HDEVINFO hDevInfo;
    SP_DEVINFO_DATA DeviceInfoData;
    DWORD i;

    // Create a HDEVINFO with all present devices.
    hDevInfo = SetupDiGetClassDevs(NULL,
        0, // Enumerator
        0,
        DIGCF_PRESENT | DIGCF_ALLCLASSES );

    if (hDevInfo == INVALID_HANDLE_VALUE)
    {
        // Insert error handling here.
        return 1;
    }

    // Enumerate through all devices in Set.

    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
    for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,
        &DeviceInfoData);i++)
    {
        DWORD DataT;
        LPTSTR buffer = NULL;
        DWORD buffersize = 0;

        //
        // Call function with null to begin with,
        // then use the returned buffer size
        // to Alloc the buffer. Keep calling until
        // success or an unknown failure.
        //
        while (!SetupDiGetDeviceRegistryProperty(
            hDevInfo,
            &DeviceInfoData,
            SPDRP_DEVICEDESC,
            &DataT,
            (PBYTE)buffer,
            buffersize,
            &buffersize))
        {
            if (GetLastError() ==
                ERROR_INSUFFICIENT_BUFFER)
            {
                // Change the buffer size.
                if (buffer) LocalFree(buffer);
                buffer = (LPTSTR)LocalAlloc(LPTR,buffersize);
            }
            else
            {
                // Insert error handling here.
                break;
            }
        }

        printf("Device: %s\n",buffer);

        if (buffer) LocalFree(buffer);
    }

    if ( GetLastError()!=NO_ERROR &&
         GetLastError()!=ERROR_NO_MORE_ITEMS )
    {
        // Insert error handling here.
        return 1;
    }

    //  Cleanup
    SetupDiDestroyDeviceInfoList(hDevInfo);

    return 0;
}
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #3  
Antiguo 08-10-2010
agil agil is offline
Registrado
NULL
 
Registrado: oct 2010
Posts: 2
Poder: 0
agil Va por buen camino
Y en Windows NT ??

Buenas,
yo también tenía la necesidad de saber las APIs que proporcionaba windows para obtener información de los dispositivos conectados al equipo, y era necesario No hacerlo a través del registro de windows, por lo que el enlace me ha venido de lujo, ahora bien...

Esto solo sirve para versiones de windows igual o superiores a windows 2000, mi problema es que también necesito hacerlo en un Windows NT, he estado rebuscando y no he encontrado mucha información sobre el tema, si alguien sabe algo se lo agradecería.
Gracias y Saludos.
Responder Con Cita
  #4  
Antiguo 11-10-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Se pueden usar las clases de WMI específicas para el Hardware de la máquina. Se puede acceder a WMI desde los diferentes lenguajes y debería funcionar en todas las versiones de Windows.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 11-10-2010
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.082
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Se pueden usar las clases de WMI específicas para el Hardware de la máquina. Se puede acceder a WMI desde los diferentes lenguajes y debería funcionar en todas las versiones de Windows.
Tengo serias dudas de que funcione en los sistemas a 64 bits.
__________________
Ya tengo Firma!
Responder Con Cita
  #6  
Antiguo 11-10-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
WMI es una cosa que mejora a medida que los sistema Windows avanzan. Es decir, en W95/W98 había que instalar un "añadido" para que funcionase, en W2000 y XP funciona bien y en Vista y Seven, no sólo funciona bein, sino que se obtienen más propiedades que en sus antecesores, ya que cada vez MS añade más clases y completa las ya existentes. De ahi que me extrañe que deje de funcionar en 64b puesto que sería lo opuesto a la dirección que MS lleva con WMI.

Mirando un poco la web, no parece que existan más problemas para acceder en 64b que en 32b.

Providing WMI Data on a 64-bit platform
Requesting WMI Data on a 64-bit Platform
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 11-10-2010
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.082
Poder: 18
juanelo Va por buen camino
Mi comentario es porque todas las funciones al menos en nombre llevan el prefijo "32".
Saludos.
__________________
Ya tengo Firma!
Responder Con Cita
  #8  
Antiguo 15-10-2010
agil agil is offline
Registrado
NULL
 
Registrado: oct 2010
Posts: 2
Poder: 0
agil Va por buen camino
Puede que con Windows NT4 y SP4 o > funcione

Al parecer puede que funcione con Windows NT4 siempre que tenga instalado el Service Pack 4 o superior, ahora mismo estoy haciendo pruebas y tengo otro tipo de problemas ...
gracias por los comentarios
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener información de los controles de un formulario MadRoberto OOP 4 08-11-2005 11:19:35
¿Como obtener informacion del Sistema? OscarPG API de Windows 0 19-11-2004 20:39:27
Hola! Informacion sobre hardware instalado kolokol API de Windows 1 10-03-2004 00:06:13
Obtener Hardware Instalado diegofhernando Varios 4 09-03-2004 21:28:36
API's de messenger 6? darkone2k3 API de Windows 3 30-01-2004 19:09:13


La franja horaria es GMT +2. Ahora son las 11:43:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi