![]() |
AW: OS Version ermitteln
Habe ich die dpr im Archiv vergessen? Nö, die liegt doch bei.
Gut, dann bleibt noch der Fehler warum der Server 2008 als Vista erkannt wird. |
AW: OS Version ermitteln
|
AW: OS Version ermitteln
Zitat:
False = 0 True <> 0 also
Delphi-Quellcode:
.
if TheVar and TheConstOderSonstwas <> 0 then
Zitat:
Delphi-Quellcode:
, außerdem ist es länger und, wie ich finde, unübersichtlicher, als
if TheBool = true then
Delphi-Quellcode:
Dieses Konstengenvergleiche ist nur wichtig, wenn es um Vergleiche mehrer Bits geht.
if osvi.wSuiteMask and VER_SUITE_PERSONAL <> 0 then
also z.B.
Delphi-Quellcode:
const Value0 = $00;
Value1 = $01; Value2 = $02; Value3 = $03; ValueMask = $0F; if TheVar and ValueMask = Value2 then |
AW: OS Version ermitteln
Einspruch Euer Ehren,
Damit wollte ich zum Ausdruck bringen, das dieses Bit gesetzt sein muß (wobei man im ersten Moment natürlich nicht weiß, daß sich hinter VER_SUITE_PERSONAL nur ein Bit versteckt) Und wenn man von der Länge des Konstantennamens absieht halte ich das für sauberer als das beliebige <>0, weil das Bitmuster das gleiche sein muß! Gruß K-H |
AW: OS Version ermitteln
@Luckie
nimm das GetNativeSystemInfo(si); an den Anfang hoch sonst wird XP64 Bit als Server2003 deklariert. |
AW: OS Version ermitteln
OK, aber das habe ich eigentlich hier berücksichtigt:
Delphi-Quellcode:
Wie im Original auch.
if (osvi.dwMajorVersion = 6) then
begin if (osvi.dwMinorVersion = 0) then begin if (osvi.wProductType = VER_NT_WORKSTATION) then Result := 'Windows Vista' else Result := 'Windows Server 2008'; end; |
AW: OS Version ermitteln
Du greifst vorher mehrfach auf
Delphi-Quellcode:
zu.
si.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64
EDIT zumindest in der Letzten Version war si gar nicht mehr initialisiert bis zum GetNativeSystemInfo |
AW: OS Version ermitteln
Funktion aus dem
![]()
Delphi-Quellcode:
function GetNativeSystemInfo(var SystemInfo: TSystemInfo): Boolean;
type TGetNativeSystemInfo = procedure (var SystemInfo: TSystemInfo) stdcall; var LibraryHandle: HMODULE; _GetNativeSystemInfo: TGetNativeSystemInfo; begin Result := False; LibraryHandle := GetModuleHandle(kernel32); if LibraryHandle <> 0 then begin _GetNativeSystemInfo := GetProcAddress(LibraryHandle,'GetNativeSystemInfo'); if Assigned(_GetNativeSystemInfo) then begin _GetNativeSystemInfo(SystemInfo); Result := True; end else GetSystemInfo(SystemInfo); end else GetSystemInfo(SystemInfo); end; function IsWindows64: Boolean; var ASystemInfo: TSystemInfo; const PROCESSOR_ARCHITECTURE_INTEL = 0; PROCESSOR_ARCHITECTURE_IA64 = 6; PROCESSOR_ARCHITECTURE_AMD64 = 9; begin GetNativeSystemInfo(ASystemInfo); Result := ASystemInfo.wProcessorArchitecture in [PROCESSOR_ARCHITECTURE_IA64,PROCESSOR_ARCHITECTURE_AMD64]; end; |
AW: OS Version ermitteln
Zitat:
@toms: Das mit dem 32/64-Bit scheint jetzt gelöst zu sein. Ich habe nur noch das Vista/Srever 2008 Problem. |
AW: OS Version ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
So, hier ist die aktuelle Version.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz