![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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). |
|
#2
|
|||
|
|||
|
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. |
|
#3
|
||||
|
||||
|
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. |
|
#4
|
||||
|
||||
|
Cita:
__________________
Ya tengo Firma! |
|
#5
|
||||
|
||||
|
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. |
|
#6
|
||||
|
||||
|
Mi comentario es porque todas las funciones al menos en nombre llevan el prefijo "32".
Saludos.
__________________
Ya tengo Firma! |
|
#7
|
|||
|
|||
|
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 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Obtener información de los controles de un formulario | MadRoberto | OOP | 4 | 08-11-2005 10:19:35 |
| ¿Como obtener informacion del Sistema? | OscarPG | API de Windows | 0 | 19-11-2004 19:39:27 |
| Hola! Informacion sobre hardware instalado | kolokol | API de Windows | 1 | 09-03-2004 23:06:13 |
| Obtener Hardware Instalado | diegofhernando | Varios | 4 | 09-03-2004 20:28:36 |
| API's de messenger 6? | darkone2k3 | API de Windows | 3 | 30-01-2004 18:09:13 |
|