Entwickler-Ecke

Windows API - CPU Typ aus WIndows auslesen [DONE]


markus\win32 - Di 29.04.03 15:38
Titel: CPU Typ aus WIndows auslesen [DONE]
Ja ich würde gerne den CPU Typ (also i386 i486 ...) auslesen können, kann mir da mal wer helfen ? ich hab schon ewig gesucht :(

Markus


DaFox - Mi 30.04.03 01:07

Hi Markus!

Ein mit Sicherheit nicht vollständiges Beispiel, aber auf jeden Fall ein Anfang:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
procedure TForm1.Button1Click(Sender: TObject);
const
  PROCESSOR_INTEL_386 = 386;
  PROCESSOR_INTEL_486 = 486;
  PROCESSOR_INTEL_PENTIUM = 586;
  PROCESSOR_MIPS_R4000 = 4000;
  PROCESSOR_ALPHA_21064 = 21064;
  PROCESSOR_ARCHITECTURE_INTEL = 0;
  PROCESSOR_ARCHITECTURE_MIPS = 1;
  PROCESSOR_ARCHITECTURE_ALPHA = 2;
  PROCESSOR_ARCHITECTURE_PPC = 3;
  PROCESSOR_ARCHITECTURE_UNKNOWN = $FFFF;
var
  MySysInfo: TSystemInfo;
begin
  GetSystemInfo(MySysInfo);
  Case MySysInfo.wProcessorArchitecture of
    PROCESSOR_ARCHITECTURE_INTEL:
    begin
      Label1.Caption := 'Intel Architecture';
      case MySysInfo.dwProcessorType of
        PROCESSOR_INTEL_386 : Label2.Caption := '386';
        PROCESSOR_INTEL_486 : Label2.Caption := '486';
        PROCESSOR_INTEL_Pentium : Label2.Caption := 'Pentium';
      end;
    end;
    PROCESSOR_ARCHITECTURE_MIPS: Label1.Caption := 'MIPS Architecture';
    PROCESSOR_ARCHITECTURE_ALPHA: Label1.Caption := 'DEC ALPHA Architecture';
    PROCESSOR_ARCHITECTURE_PPC: Label1.Caption := 'PPC Architecture';
    PROCESSOR_ARCHITECTURE_UNKNOWN: Label1.Caption := 'Unknown Architecture';
  end;
end;


Gruß,
Markus


markus\win32 - Mi 30.04.03 22:30

danke
hat geholfen
schade das diese funktion keine 686er erkennt :(
und wie es dann demnächst mit x86-64 aussieht weiss auch keiner

Markus


Delete - Mi 30.04.03 22:37

Kuck dir mal von meiner Seite die SysInfo an. Code wird mitgeliefert. Das CPU-Zeugst steckt in der Unit CPUInfo.pas oder so. ist alles in Klassen gekapselt, sollte also kein Problem sein das zu nutzen.


markus\win32 - Do 01.05.03 18:19

Ich habs schon
Die Hilfe der WIndows API hat mir verraten wie es geht - noch n bissl reumprobiert und dann ging es.

Markus


ErnestoChe - Do 01.05.03 23:33

Hi,

markus\win32 hat folgendes geschrieben:
Ich habs schon
Die Hilfe der WIndows API hat mir verraten wie es geht - noch n bissl reumprobiert und dann ging es.

Markus


Dann poste doch bitte die Lösung bzw. den Code, dann haben andere auch was davon.

MFG

- Ernesto -


markus\win32 - Fr 02.05.03 14:10


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
 systeminfo : TSystemInfo;
 CPUType : string;
begin
 GetSystemInfo(SystemInfo);
 CPUType := 'i'+IntToStr(systeminfo.dwprocessortype);
 ShowMessage('Sie haben eine '+CPUType+' CPU.');
end;


Man bekommt dort nur i386, i486 oder i586(auch bei 686ern, weswegen ich nach einer Alternative gesucht habe)

den Athlon64 kennt diese windows API so wie so nicht
und für andere prozessoren kann man meines wissens mit Delphi nichts comilieren.