Entwickler-Ecke
Windows API - OS erkennung
Roy - Do 11.02.16 19:15
Titel: OS erkennung
Hallo,
wie kann man die GetWinVersion auf Windows7/8 und 10 erweitern
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: If Win32MajorVersion=4 Then Begin Case Win32MajorVersion of 0: result:='Windows 95'; 10: result:='Windows 98'; 90: result:='Windows Me'; end; end; 2: 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; if Win32CSDVersion<>'' then result:=result+' '+Win32CSDVersion; end; |
Danke
Moderiert von Martok: Delphi-Tags hinzugefügt
jaenicke - Fr 12.02.16 07: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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!