System - Win-Version herausfinden ... Wie?
-
Hi Leute!
Also wie es scheint ist der "Suchen"-Button weg, sodass ich leider nicht weiß, ob diese Frage schon einmal gestellt wurde [img]images/smiles/icon_sad.gif[/img]
Na gut, weiß jemand von euch wie man die Windows-Version herauskriegt?
Egal ob MFC, WinAPI oder sonst noch was, hauptsache dass es geht!THX im voraus!!!
mfg
shadow [img]images/smiles/icon_biggrin.gif[/img]
-
->CodeGuru
-
-
tach,
wenn du es noch net gefunden hast hir der code für die WIn Versions Erkennung (als komplette funktion)void GetWinVersion(void) { OSVERSIONINFO verInfo = {0}; verInfo.dwOSVersionInfoSize = sizeof (verInfo); GetVersionEx(&verInfo); switch (verInfo.dwPlatformId) { case VER_PLATFORM_WIN32_NT: //Wenn Windows = WinNT oder Win2K bWIN_NT = TRUE; // dann setze bWIN_NT auf TRUE und bWIN_9X = FALSE; // bWIN_9X aufFALSE break; case VER_PLATFORM_WIN32_WINDOWS://Wenn Windows = Win95 - WIN98SE //und ME bWIN_9X = TRUE; // dann setze bWIN_9X auf TRUE und bWIN_NT = FALSE; // dann setze bWIN_NT auf TRUE und break; //default: // printf ("tlist requires Windows NT or Windows 95\n"); //return 1; } }
Guß
firefly[ Dieser Beitrag wurde am 03.04.2002 um 19:12 Uhr von firefly editiert. ]
-
@firefly:
Hi, ich habe schon die Lösung aber trotzdem Danke für Deine Antwort!
Nur, so wie du hatte ich es auch schon versucht, aber bei mir wurde Win2k nicht erkannt images/smiles/icon_confused.gif
Darum habe ich auch diesen Thread gestartet...Erkennst du mit der Funktion GetVersionEx(...) Win2k???
mfg
shadow images/smiles/icon_biggrin.gif
-
Der Ansatz von firefly ist gut.
Du mußt nur noch etwas Code ergänzen / Überprüfungen vornehmen.Hier mal der Code von Vinux zu diesem Thema:
#define W95 "Windows 95" #define W98 "Windows 98" #define WME "Windows ME" #define WNT4 "Windows NT 4.0" #define W2K "Windows 2000" CString WinVer; OSVERSIONINFO winfo; winfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&winfo); if(winfo.dwPlatformId==VER_PLATFORM_WIN32_NT) { if(winfo.dwMajorVersion>=5) WinVer=W2K; else WinVer=WNT4; } else if(winfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS) { if(winfo.dwMinorVersion<10) WinVer=W95; else if(winfo.dwMinorVersion<90) WinVer=W98; else WinVer=WME; }
MfG veganza
P.S: Das schreit doch nach einem Eintrag im FAQ obwohl es eigentlich nix mit MFC zu tun hat images/smiles/icon_biggrin.gif
[ Dieser Beitrag wurde am 04.04.2002 um 10:18 Uhr von veganza editiert. ]
-
@veganza:
Ja, du hast recht! So gehts!
Warum bin ich nicht drauf gekommen images/smiles/icon_mad.gifIch finde auch, dass dieser Eintrag in die FAQ soll. Vor allem weil ich den "Suchen"-Link nirgendwo mehr finden kann images/smiles/icon_sad.gif
mfg
shadow images/smiles/icon_biggrin.gif
-
Ich hätte da noch folgendes:
CString system; CString typ; OSVERSIONINFOEX osvi; BOOL bOsVersionInfoEx; ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); if(!(bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO *) &osvi)) ) { osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); if (! GetVersionEx ((OSVERSIONINFO *) &osvi) ); } switch(osvi.dwPlatformId) { case VER_PLATFORM_WIN32_NT: if (osvi.dwMajorVersion <= 4) system = "Microsoft Windows NT"; if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 ) system = "Microsoft Windows 2000"; if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 ) system = "Microsoft Windows XP \"Whistler\""; HKEY hKey; char szProductType[80]; DWORD dwBufLen; RegOpenKeyEx( HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\ProductOptions", 0,KEY_QUERY_VALUE, &hKey); RegQueryValueEx( hKey, "ProductType",NULL,NULL,(LPBYTE) szProductType, &dwBufLen); RegCloseKey (hKey); if (lstrcmpi("WINNT", szProductType) == 0) typ = "Workstation"; if (lstrcmpi("SERVERNT",szProductType) == 0) typ = "Server"; if (osvi.dwMajorVersion <= 4) { printf("Version %d.%d %s (Build %d)\n", osvi.dwMajorVersion, osvi.dwMinorVersion, osvi.szCSDVersion, osvi.dwBuildNumber & 0xFFFF); } else { printf("%s (Build %d]\n", osvi.szCSDVersion, osvi.dwBuildNumber & 0xFFFF); } break; case VER_PLATFORM_WIN32_WINDOWS: if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0) { system = "Microsoft Windows 95"; if (osvi.szCSDVersion[1] == 'C') typ = "OSR2"; } if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10) { system = "Microsoft Windows 98"; if (osvi.szCSDVersion[1] == 'A') typ = "Second Edition"; } if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90) { system = " Mircosoft Windows ME"; } break; case VER_PLATFORM_WIN32s: system = "Micorsoft Win32s"; break; }
Nur mal so, weil ich es gerade hier rumliegen hatte
[ Dieser Beitrag wurde am 06.05.2002 um 09:51 Uhr von C-O-M-M-A-N-D-E-R editiert. ]
-
Dann verschieb das doch mal endlich in den FAQ images/smiles/icon_wink.gif
MfG veganza
-
soweit ich das gesehen hab, war es schon in der faq, werds aber nochmal machen, und ein evtl. duplikat löschen.. images/smiles/icon_biggrin.gif