Autor Beitrag
Roy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184

Windows7 Ultimate
Delphi 2007, NET, Embarcadero
BeitragVerfasst: Do 11.02.16 20:15 
Hallo,

wie kann man die GetWinVersion auf Windows7/8 und 10 erweitern


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
function GetWinVersion: string;
begin
  result:='Unbekannte Version';
  case Win32Platform of
    1:// 9x-Reihe
      If Win32MajorVersion=4 Then Begin
        Case Win32MajorVersion of
            0: result:='Windows 95';
            10: result:='Windows 98';
            90: result:='Windows Me';
        end;
      end;
  2// NT-Reihe
     Case Win32MajorVersion of
         3:IF Win32MinorVersion=51 then
              result:='Windows NT 3.51';
         4:If Win32MinorVersion=0 then
             result:='Windows NT 4';
         5:Case Win32MinorVersion of
              0: result:='Windows 2000';
              1: result:='Windows XP';
              2: result:='Windows .NET Server';
           end;
     End;
  end;
  //Win32CSDVersion enthält Informationen zu Servicepacks
  if Win32CSDVersion<>'' then
    result:=result+' '+Win32CSDVersion;
end;

Danke

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1561
Erhaltene Danke: 267


Delphi 10 Seattle Prof.
BeitragVerfasst: Fr 12.02.16 07:45 
In der Msdn findest Du eine Tabelle mit den Werten für die Versionen:
msdn.microsoft.com/e...724833(v=vs.85).aspx

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18694
Erhaltene Danke: 1620

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 12.02.16 08:45 
Wichtig ist dabei noch, dass die Anwendung ein Manifest enthalten muss, in dem diese als Windows 10 kompatibel deklariert wird. Ansonsten bekommst du auch nicht das Ergebnis Windows 10, sondern aus Kompatibilitätsgründen eine ältere Versionsnummer.

Hintergrund ist, dass leider zu viele auf die Versionsnummer prüfen anstatt zu prüfen, ob ein benötigtes Feature vorhanden ist. Dadurch gab es schon viele unnötige Fehler:
Entweder dass Anwendungen als inkompatibel nicht starteten, wenn eine neue Windowsversion kam, obwohl es die notwendige Funktionalität auch gehabt hätte.
Es gab aber auch immer wieder den Fehler, dass Funktionen in neueren Windowsversionen nicht mehr vorhanden waren, die Software dies aber nicht erkannt hat, weil einfach stur geprüft wurde, ob die Windowsversion mindestens XY ist.
Deshalb sah sich Microsoft dazu gezwungen selbst zu handeln...

Davon getroffen werden natürlich auch Systeminformationstools, die die Version aus rein informativen Gründen benötigen. Hier kann man als Ausweichlösung die Versionen der System-DLLs abfragen. Das sollte man aber auch wirklich nur zu diesem Zweck machen.
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1575
Erhaltene Danke: 223


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Sa 13.02.16 00:42 
Dazu findet man recht viel in den Foren, z.B. www.delphipraxis.net...s-10-ermitteln.html.