Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!
Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.
Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.
[Opgelost] Lazarus - Windows - Detecteer 64bit Windows in een 32bit applicatie
Delphi, Lazarus, Free Pascal
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2864
Topic starter
13 september 2018 14:50
Deze functie ("windows" aan de "uses" clausule toevoegen) bepaald of je op een 64bit Windows draait, ook al is jouw applicatie 32bit;
function t4a_Is64BitWindows: boolean;
{$IFDEF WIN32}
type
TIsWow64Process = function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall;
var
IsWOW64: Windows.BOOL;
IsWOW64Process: TIsWow64Process;
{$ENDIF}
begin
{$IFDEF WIN32}
// Try to load required function from kernel32
IsWOW64Process := TIsWow64Process(Windows.GetProcAddress(Windows.GetModuleHandle('kernel32'), 'IsWow64Process'));
if Assigned(IsWOW64Process) then
begin
// Function exists
if not IsWOW64Process(Windows.GetCurrentProcess, IsWOW64) then
Result:=False
else
Result:=IsWOW64;
end
else
// Function not implemented: can't be running on Wow64
Result := False;
{$ELSE} //if were running 64bit code, OS must be 64bit :)
Result := True;
{$ENDIF}
end;