Betriebssystem Bit-Architektur herausfinden

Antworten
TM4rkuS
Beiträge: 6
Registriert: Mi 3. Feb 2010, 21:34
OS, Lazarus, FPC: Windows 7 (L 0.9.28Beta FPC 2.2.4)
CPU-Target: 64Bit

Betriebssystem Bit-Architektur herausfinden

Beitrag von TM4rkuS »

Gibt es einen Befehl, mit dem man herausfinden kann, ob das jeweilige Windows-Betriebssystem ein 32- oder 64Bit-Architektur hat?

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Betriebssystem Bit-Architektur herausfinden

Beitrag von Hitman »

Was für eine Rolle spielt das? Wenn dein Programm für 32bit kompiliert ist und startet, dann reichts ja :D Jegliche überprüfung die du durchführen kannst, käme eh "zu spät". Den einzigen Fall den du damit abdecken könntest wäre, wenn du ein 32bit Programm auf einem 64bit System ausführst - aber was nützt dir die Information dann? Ein 64bit Programm auf einem 32bit System kannst du ohnehin nicht ausführen.

TM4rkuS
Beiträge: 6
Registriert: Mi 3. Feb 2010, 21:34
OS, Lazarus, FPC: Windows 7 (L 0.9.28Beta FPC 2.2.4)
CPU-Target: 64Bit

Re: Betriebssystem Bit-Architektur herausfinden

Beitrag von TM4rkuS »

.. Ich hab da schon meine Gründe :D
Schlimm genug, dass man auf 64 Bit keine Programme für 32 Bit kompilieren kann ;-)
Ich brauche einfach eine Abfrage dafür ;-)

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Betriebssystem Bit-Architektur herausfinden

Beitrag von theo »

Da würde ich mal auf MSDN suchen oder Googeln. Das ist sowieso eine reine Windows Angelegenheit.
Vllt. mal nach IsWow64Process suchen.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Betriebssystem Bit-Architektur herausfinden

Beitrag von monta »

Code: Alles auswählen

uses ..., windows;
 
procedure TForm1.Button1Click(Sender: TObject);
var Info: SYSTEM_INFO;
begin
  GetSystemInfo(Info);
  case Info.wProcessorArchitecture of
   9: ShowMessage('x64 - 64Bit');
   0: ShowMessage('x86 - 32Bit');
   6: ShowMessage('Intel Itanium');
  end;
end;


für die bedeutung von SYSTEM_INFO siehe hier:
http://msdn.microsoft.com/en-us/library/ms724958(VS.85).aspx
Johannes

Antworten