Windows version ermitteln erweitern (aus FAQ)
-
Habe den case2 jetzt auf die Build Nr. geändert. Funktioniert auch alles. Falls noch Versionen vergessen wurden oder ihr noch ander Buildnummern habe sagt bitte bescheid. Möchte gerne alle Versionen erkennen können.
Von Windows XP 64 gint es noch keine Final oder?
case 2 :
{
if (minor == 2)
switch(build)
{
case 3790: return "Windows Server 2003";
}
}
-
Wie erkenne ich jetzt bei WINDOWS2000 welches service pack installiert ist ???
-
Siehe wServicePackMajor und wServicePackMinor in OSVERSIONINFOEX.
-
Ihr könnt mir doch sicher auch noch Sagen wie ich die Sprache des Betriebsystem auslesen kann!?
Stefan
-
@seiermeier was meinst Du ?

Ob RUSSISCh , deutsch oder Türkisch ???
-
Was mache ich falsch ???
OSVERSIONINFOEXW infEX;
WORD SP = infEX.wServicePackMajor;
SP ist 22916
(Ich habe SP 3 )
Major version number of the latest Service Pack installed on the system. For example, for Service Pack 3, the major version number is 3. If no Service Pack has been installed, the value is zero.
-
Wie kommst du auf OSVERSIONINFOEXW?
-
Einfacher ist :
_OSVERSIONINFO
TCHAR szCSDVersion[128];da steht es gleich im Klartext drinn .

-
Immerhin gut zu sehen, dass du weitergelesen hast.

Allerdings bekommst du bei szCSDVersion halt immer die Langversion, auch wenn du in deinem Programm vielleicht nur Platz für ein 'SP 3' hast. Ganz davon abgesehen, dass sich "Service Pack n" auch schlecht in einem switch/case-Konstrukt wie in o.g. Beispielen einsetzen lässt.
Und was war nun mit deinem OSVERSIONINFOEXW?
-
nas was denn sonst?
-
Hier noch ein sehr guter Link:
http://www.codeguru.com/Cpp/W-P/system/systeminformation/article.php/c8973/
Viel Erfolg
Michael