![]() |
Win7-Identifikation scheint unmöglich
Hallo,
bisher benutzte ich immer folgende kleine Funktion (mit "GetVersionEx") fürs Identifizieren der jeweiligen Windows-Version:
Delphi-Quellcode:
function GetWinVersion: integer;
var osvi : TOSVersionInfo; begin ZeroMemory(@osvi,sizeOf(osvi)); osvi.dwOSVersionInfoSize := sizeOf(osvi); if not GetVersionEx(osvi) then begin Result := WinVersionError; // "Fehler" bei der Ermittlung der Windows-Version'; exit; end; case osvi.dwPlatformId of // Test for the Windows NT product family. VER_PLATFORM_WIN32_NT: begin Result := HigherOS; // GREATER THAN hightestToday // Test for the specific product family. if(osvi.dwMajorVersion = 6) and (osvi.dwMinorVersion = 1) then Result := Win7; // Win7 if(osvi.dwMajorVersion = 6) and (osvi.dwMinorVersion = 0) then Result := Vista; // Vista if(osvi.dwMajorVersion = 5) and (osvi.dwMinorVersion = 2) then Result := Win2003; // Microsoft Windows Server 2003 family; if(osvi.dwMajorVersion = 5) and (osvi.dwMinorVersion = 1) then Result := XP; // Microsoft Windows XP; if(osvi.dwMajorVersion = 5) and (osvi.dwMinorVersion = 0) then Result := W2k; // Microsoft Windows 2000; end; ELSE Result := LT_W2k; // LESS THAN W2k end; { of case } end; Bezüglich der Identifizierung von Win7 will das aber auf einmal nicht mehr funktionieren. Dergemäß wäre das Win7 jetzt nur noch ein WinXP ...mit dwMajorVersion=5 und dwMinorVersion=1. Also habe ich schnell mal hier im Archiv herumgesucht... ...aber egal welche Kombination ich auch zwischen der Funktion "GetVersionEx" (möglich auch: "GetVersionExA" oder "GetVersionExW") und der "osvi"-Data (möglich sind: TOSVersionInfo, TOSVersionInfoA, TOSVersionInfoW) ausprobiere, es kommen für die Major- u. MinorVersion-Data immer wieder die gleichen Werte (5 u. 1) heraus oder die Funktion scheitert ganz. Schlussendlich habe ich dann auch nochmal die Jedi Code Library gedownloadet und die dortige Funktion "GetWindowsVersionString" getestet. Mit dem Ergebnis: Auch die Jedi-Funktion meint mein System sei ein "Windows XP"!!! Ist das normal so, dass Win7 nicht (oder nur sehr schwer) identifizierbar ist? Oder gibt es hierfür event. noch irgendwie eine andere Methode? Thx schonmal im Voraus. rXdY PS. Sich selbst kennt Windows7 aber schon. Denn in der Systemsteuerung (>System) steht klar und deutlich: Windows 7 Home Premium. Wieso das also so schwierig sein muss, da eine einfache und korrekte Auskunft darüber zu geben, das wissen wahrscheinlich nur die Götter :roll: |
AW: Win7-Identifikation scheint unmöglich
|
AW: Win7-Identifikation scheint unmöglich
Verwendet denn deine Anwendung ein Vista/Win7-erweitertes Manifest?
Falls nein könnte ich mir vorstellen das Vist einfach annimmt das die Anwendung nicht Vista/Win7-Kompatible ist und einfach ein XP "vorgaugelt" |
AW: Win7-Identifikation scheint unmöglich
So sollte es funktionieren:
![]() |
AW: Win7-Identifikation scheint unmöglich
Dein Delphi läuft im Kompatibilitätsmodus. Prüfe das einfach mal in den Eigenschaften.
|
AW: Win7-Identifikation scheint unmöglich
Zitat:
Thx allen! |
AW: Win7-Identifikation scheint unmöglich
Huraahh! Meine Glaskugel funktioniert wieder :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 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