PDA

Ver la Versión Completa : Info Sistema...(cpu y dispositivos)


Beldwir
26-09-2004, 18:21:56
Hola, intento mostrar la velocidad del reloj del procesador utilizando la estructura PROCESSOR_POWER_INFORMATION pero no obtengo el resultado esperado, existe alguna otra estructura o función que devuelva esta info del procesador?

La función DeviceIoControl() me devuelve el error nº 5 en vez del nombre del dispositivo seleccionado, es posible que exista algún error en el código?
Gracias de antemano.



#include <vcl.h>
#pragma hdrstop
#include <windows.h>
#include <winioctl.h>
#include <iostream>
#include <conio.h>
#pragma argused
using namespace std;
int main(int argc, char* argv[])
{
HANDLE hDispositivo; // Manejador para la función CreateFile().
BOOL Resultado; // Valor devuelto por la función DeviceIoControl().
CHANGER_PRODUCT_DATA sInfoUnid; // Estructura con información sobre la unidad.
DWORD Retorno;
/* Función que crea el manejador para abrir la unidad.
El primer parámetro es el unidad de la que queremos obtener información.*/
hDispositivo=CreateFile("\\\\.\\d (""):",
0,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
if(hDispositivo == INVALID_HANDLE_VALUE) cout << "No es posible abrir el dispositivo.";
Resultado=DeviceIoControl(hDispositivo,
IOCTL_CHANGER_GET_PRODUCT_DATA,
NULL,
0,
&sInfoUnid,
sizeof(sInfoUnid),
&Retorno,
(LPOVERLAPPED) NULL);

if(Resultado)
{
cout << sInfoUnid.VendorId << '\n';
cout << sInfoUnid.ProductId << '\n';
}
else cout << GetLastError() << '\n' ;
CloseHandle(hDispositivo);
getch();
return 0;
}