Ein 8.0 lässt sich auch mit GetVersionEx korrekt erkennen, 8.1 und höher nur dann, wenn die Applikation ein Manifest mit passender Kompatibilität aufweist.
Wenn es das nicht tut, dann wird es wie ein altes Programm behandelt und einige Dinge werden emuliert/umgeleitet, damit es fast so ist, als liefe es in einem alten Windows.
Und somit hat sich das Problem auch gelöst.
Ob es aber inntelligent ist, das Programm einfach nicht mehr zu starten, nur weil das Windows angeblich zu neu ist, ist auch keine gute Lösung.
> Schadensersatzansprüche?
Dann bringt Mikrosoft ein Windowsupdate raus, das ändert die Version und schon knallt es wieder, weil sich die Version geändert hat.
Eine Warnmeldung wäre ja auch möglich.
Und wie bereits erwähnt, kann man die Zukunft nicht planen, also kann man mit Sicherheit nur auf alte Versionen reagieren und eine Warnung/Funktionsverweigerung explizit auf "bekannte" Probleme ausrichten.
"Sie verwenden Windows 98. Hier gibt bekannte es es Probleme, welche die korekte Funktion des Programms beeinflussen ... Tschüss"