Hallo Michael,
auf einer Windows XP Professional SP3 Installation kommt als Ergebnis:
---------------------------
Project1
---------------------------
Windows XP Home Edition Service Pack 3 Build: 2600
---------------------------
OK
---------------------------
Ich habe mir zwar mal den Quelltext angeschaut, nur finde ich da ohne Delphi gerade den Fehler nicht. Für die Windows-
API GetProductInfo gibt es noch mehr Ergbenisse. Die
API arbeitet sehr zuverlässig, da ich diese bei mir im SystemInfo einsetze.
Edit:
Um zu überprüfen, ob das
OS 32Bit oder 64Bit ist, würde ich diese Funktion nehmen :
Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
//
// Bestimmen ob das Betriebssystem 64Bit ist oder nicht
//
function IsWow64: Boolean;
type
TIsWow64Process =
function(
Handle: Windows.THandle;
var Res: Windows.BOOL): Windows.BOOL;
stdcall;
var
IsWow64Result: Windows.BOOL;
// Result from IsWow64Process
IsWow64Process: TIsWow64Process;
// IsWow64Process fn reference
begin
// Try to load required function from kernel32
IsWow64Process := Windows.GetProcAddress(Windows.GetModuleHandle('
kernel32'), '
IsWow64Process');
if Assigned(IsWow64Process)
then
begin
// Function is implemented: call it
if not IsWow64Process(Windows.GetCurrentProcess, IsWow64Result)
then
raise SysUtils.Exception.Create('
IsWow64: bad process handle');
// Return result of function
Result := IsWow64Result;
end
else
// Function not implemented: can't be running on Wow64
Result := False;
end;
Dazu gibt es auch einen Beitrag hier im Forum, finde aber zu Zeit den Link nicht mehr.