Windowsversion

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Windowsversion

Beitrag von hbr »

hallo,
kann mir vieleicht jemand sagen mit welchem Befehl man bei Lazarus die Windows Version bzw 32 oder 64Bit Version abfragen kann?
gruß
hbr

jus
Beiträge: 52
Registriert: Fr 6. Mai 2011, 13:29

Re: Windowsversion

Beitrag von jus »

Vermutlich gibt es paar Befehle, mit dem man 32bit oder 64bit Windows feststellen kann. Ich verwende den Befehl "GetNativeSystemInfo". Der ist in "kernel32" dll drin.

Lg,
jus

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: Windowsversion

Beitrag von hbr »

Hallo Jus,
hättest Du da mal ein Beispiel?

Gruß

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Windowsversion

Beitrag von gocher »

Code: Alles auswählen

program cpu32o64;
uses Windows, dynlibs;    
 
procedure GetSysInfo(out SystemInfo: TSystemInfo);
type TGetNativeSystemInfo = procedure(var SystemInfo: TSystemInfo) stdcall;
var
  LibraryHandle: TLibHandle;
  GetNativeSystemInfo: TGetNativeSystemInfo;
begin
  LibraryHandle := GetModuleHandle(kernel32);
  if LibraryHandle <> 0 then
    GetNativeSystemInfo := TGetNativeSystemInfo(GetProcAddress(LibraryHandle, 'GetNativeSystemInfo'));
  if Assigned(GetNativeSystemInfo) then
    GetNativeSystemInfo(SystemInfo)
  else
    GetSystemInfo(SystemInfo);
end;
 
function IsCpu64: Boolean;
var ASystemInfo: TSystemInfo;
const
  PROCESSOR_ARCHITECTURE_INTEL = 0; //i386
  PROCESSOR_ARCHITECTURE_IA64 = 6; //Intel Itanium-based
  PROCESSOR_ARCHITECTURE_AMD64 = 9; //x86_64
  PROCESSOR_ARCHITECTURE_UNKNOWN = $ffff;       
begin
  GetSysInfo(ASystemInfo);
  Result := ASystemInfo.wProcessorArchitecture in [PROCESSOR_ARCHITECTURE_IA64,PROCESSOR_ARCHITECTURE_AMD64];
end;
 
begin
  if isCpu64 then 
    WriteLn('cpu64')
  else
    WriteLn('cpu32');
end.
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: Windowsversion

Beitrag von hbr »

Hallo Gocher,
vielen Dank!
Das ist genau das, was gesucht habe.

Gruß
hbr

Antworten