Hardwaredaten auslesen bei C++

Se7enair

Enthusiast
Thread Starter
Mitglied seit
19.11.2006
Beiträge
2.818
Ort
NULLSIEBENELF
Also ich versuch mich grad an nem kleinem programm, dazu müsst ich aber die hardwaredaten vom entsprechenden pc anzeigen lassen können. aber ich weis nicht wie es geht :P

also am schluss sollte man auf einen button klicken und das programm gibt dann die daten in einem extra feld aus.

kennt einer von euch den code? wichtig wär vorallem mhz vom cpu, fsb, multi und prozessor typ
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hallo ich befasse mich auch gerade damit, kann man auch den FSB, Speichertakt, Speicher-Timings, GPU Takt, etc. auslesen?

Und PROCESSOR_POWER_INFORMATION gibt es bei mir nicht.
 
Zuletzt bearbeitet:
Als ich diesen Thread gelesen habe musst ich auch erstmal gucken wie man sowas programmiert (mache leider nur ne propretäre Sprache gewöhnlich).

Aber ich hab mal quick n dirty was zusammengeschustert:

Code:
#include <windows.h>
#include <stdio.h>
#include <powrprof.h>
#include <WinDef.h>
#include <ntpoapi.h>

int main()
{
	
	/*	
	
	http://msdn2.microsoft.com/en-us/library/aa373184.aspx 
	von TWAV	
	
	typedef struct _PROCESSOR_POWER_INFORMATION {
	  ULONG Number;
	  ULONG MaxMhz;
	  ULONG CurrentMhz;
	  ULONG MhzLimit;
	  ULONG MaxIdleState;
	  ULONG CurrentIdleState;
	} PROCESSOR_POWER_INFORMATION, *PPROCESSOR_POWER_INFORMATION;
   */
   
	/* in cpu kommen die daten */
	PROCESSOR_POWER_INFORMATION cpu;
	/* retval von CallNtPowerInformation */
	NTSTATUS status;
	
	/* Siehe auch http://msdn2.microsoft.com/en-us/library/aa372675(VS.85).aspx */
	status = CallNtPowerInformation(ProcessorInformation, NULL, 0, &cpu, sizeof(cpu));	
	
	switch ( status )
	{
		case STATUS_ACCESS_DENIED:
		{
			printf("Access denied!");
 			break;
		}
		case STATUS_SUCCESS:
		{
			printf("CPU Nummer: %lld \n",cpu.Number);
			printf("CPU MaxMhz: %lld \n",cpu.MaxMhz);
			printf("CPU Current Mhz: %lld \n",cpu.CurrentMhz);	
			printf("CPU MhzLimit: %lld \n",cpu.MhzLimit);
			printf("CPU MaxIdleState: %lld \n",cpu.MaxIdleState);	
 			printf("CPU CurrentIdleState: %lld \n",cpu.CurrentIdleState);
 			break;
		}
		case STATUS_BUFFER_TOO_SMALL:
		{
			printf("Buffer zu klein!");
			break;
		}
	}	
	
	getchar();
	return 0;	
}

gruß
hostile

PS. Hab ich mit der Dev-C++ beta kompiliert...

//edit: bzgl. FSB.. schau mal hier: http://entwickler-forum.de/showthread.php?t=37180

// edit 2: und gerade hab ich bemerkt wie alt der thread ist -.-
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh