Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Info Sistema...(cpu y dispositivos) (https://www.clubdelphi.com/foros/showthread.php?t=14622)

Beldwir 26-09-2004 18:21:56

Info Sistema...(cpu y dispositivos)
 
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.

Código:


#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;
}



La franja horaria es GMT +2. Ahora son las 02:31:38.

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