FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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. |
#2
|
||||
|
||||
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). |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
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. |
#5
|
||||
|
||||
Cita:
__________________
Ya tengo Firma! |
#6
|
||||
|
||||
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. |
#7
|
||||
|
||||
Mi comentario es porque todas las funciones al menos en nombre llevan el prefijo "32".
Saludos.
__________________
Ya tengo Firma! |
#8
|
|||
|
|||
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 |
|
|
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 |
|