Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

adapto

Treue Seele

  • »adapto« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

1

16.08.2004, 04:17

cpu gpu ermitteln

wie kommt man unter windows an die daten der cpu (typ, taktfrequenz) und gpu ohne über directx zu gehen? hab gegoogelt wie ein wilder konnte dazu aber nichts finden.

gruss adapto

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

2

16.08.2004, 11:43

In der Registry unter (zu erreichen mit Ausführen->regedit): HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/CentralProcessor/Number/~MHz ist die CPU-Taktfrequenz als DWORD zu finden (Number ist einfach die Nummer des Prozessors, falls man mehrere hat)

Es gibt Funktionen zum Einlesen von Daten aus der Registry, ich weiss die aber nicht auswendig. Du findest sie sicher in der MSDN Library, wenn du nach "Registry" suchst.

Vermutlich gäbe es noch eine einfachere Lösung aber die weiss ich leider nicht :rolleyes:
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

adapto

Treue Seele

  • »adapto« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

3

16.08.2004, 12:38

ja mit der registry kenne ich mich aus. das geht über "RegQueryValueEx". ich dachte es gäbe irgendeinen api aufruf mit dem man sowas direkt auslesen kann. weisst du noch wo ich etwas über die graka finde?

danke

Anonymous

unregistriert

4

16.08.2004, 19:33

hmm....

Ich habe irgendwo eine *.dll die die gesamten DX Daten ausliest und als *.txt ablegt. (Cpu /Gpu/Ram/Graka/Grakaram/3D eigenschaften/soundeigenschaften/winversion etc ect.) (Fast 300 Zeilen ;) )

Daraus müsste mann dann eigentlich wieder auslesen können.

Bei gelegenheit such ich das Teil mal.

cu Linux

5

16.08.2004, 19:41

Für die CPU habe ich mir mal ein paar Funktionen erstellt, die ein paar Eigenschaften ermitteln.

cpu-desc.rar

Es ist ein Teil meiner Engine und daher nicht zu kompilieren. Aber mit ein bischen CopyNPaste kann man das schnell ändern ;)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

6

16.08.2004, 20:17

Zitat von »"adapto"«

weisst du noch wo ich etwas über die graka finde?


Sorry, weiss ich nicht. Natürlich über DX, aber das willst du ja nicht. Aber wieso eigentlich ohne DX? Soll das plattformunabhängig sein oder so?
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

7

16.08.2004, 21:26

Mir fällt noch ein das es für die WinAPI noch Enumerationsfunktionen gibt. Über diese kann man bestimmt auch die Grafikkarte erfragen. Denn Windows muss ja nun auch für die Einstellungen des Video-Modes die Fähigkeiten der Grafikkarte kennen.

Frag mich jetzt aber nicht wie die Funktionen genau heißen. Hab sie eher nur zufällig gesehen.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

adapto

Treue Seele

  • »adapto« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

8

17.08.2004, 00:44

@Dragon
danke genau das was ich gesucht habe zu der cpu. den rest lese ich unter windows aus der registry.

Zitat

Soll das plattformunabhängig sein oder so?

ja das soll zm gfx api unabhängig sein. es kommt zwar in meine dx engine mit rein, aber ich wollte es noch für andere projekte verwenden.

@linux
dx daten bringen mir nichts, da ich eigentlich 'gfx api' unabhängig bleiben will.


cpu und ram hab ich jetzt alles was ich brauche! jetzt fehlt mir eigentlich nur noch die graka und die soundkarte.

Terriermon

Frischling

Beiträge: 52

Wohnort: Finnland :-)

  • Private Nachricht senden

9

25.08.2005, 13:46

Auch für meine Engine wäre das eine nützliche Funktion...

Zitat

In der Registry unter (zu erreichen mit Ausführen->regedit): HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/CentralProcessor/Number/~MHz ist die CPU-Taktfrequenz als DWORD zu finden (Number ist einfach die Nummer des Prozessors, falls man mehrere hat)

Diesen Schlüssel gibt es bei mir nicht! (ich habe Win98 SE :()

Weiß sonst noch jemand, wie man diese Werte auslesen kann? (Kann auch ruhig DirectX sein ;) )

EDIT: Auf einmal geht der Link wieder! :o

Terriermon

Frischling

Beiträge: 52

Wohnort: Finnland :-)

  • Private Nachricht senden

10

08.09.2005, 19:10

Da das hier (so wie's aussieht) auch keiner weiß, hab ich selbst mal ein bisschen rumgeschaut:

RAM: http://msdn.microsoft.com/library/defaul…emoryStatus.asp sollte auf jeden Fall weiterhelfen.

CPU-Takt:
http://www.codeproject.com/system/camel.asp.

Grafikkarten-Speicher:
Wie ich befürchtet habe, muss man über DirectDraw gehen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Benötigte Dateien includieren

#include "DDraw.h"
#pragma comment(lib, "DDraw.lib")

LPDIRECTDRAW7 pDDraw;
DDSCAPS2      DDCaps;
DWORD        dwTotal;
DWORD        dwFree;

// ... Der Rest des Codes ...

DirectDrawCreateEx(NULL, (void**)&pDDraw, IID_IDirectDraw7, NULL);
ZeroMemory(&DDCaps, sizeof(DDSCAPS2)); // Wichtig!

pDDraw->GetAvailableVidMem(&DDCaps, &dwTotal, &dwFree);
dwTotal /= 1024000; dwFree /= 1024000;

// dwTotal enthält nun den gesamten, dwFree den freien Grafikspeicher in MB. Releasen der Schnittstelle nicht vergessen!

Werbeanzeige