windowsversion
-
Hallo,
hab versucht die windowsversion zu ermitteln,
bin da bei msdn auf folgendes gestoßen
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx (&osvi);
bei dem osvi fehld dochw as.
Was issend aran falsch
komme einfach nicht weiter
ciao jan
-
Guckst du hier -> http://www.c-plusplus.net/forum/viewtopic.php?t=39148
Da stehts bestimmt drin
-
ich haate nur nochd as Problem mit den Nummern udn den verschieden rückgabewerten von GetVersionEx(); in die Variable &osiv
+ciao jan
-
hab ich irgendwann mal geschrieben
AnsiString TxlOSInfo(void) { OSVERSIONINFOEX InfoStruct; bool bOSVERSIONINFOEX; AnsiString temp=""; ZeroMemory(&InfoStruct,sizeof(OSVERSIONINFOEX)); InfoStruct.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); if(!(bOSVERSIONINFOEX = GetVersionEx((OSVERSIONINFO*)&InfoStruct))) { InfoStruct.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); if(!GetVersionEx((OSVERSIONINFO*)&InfoStruct)) return "ERROR"; } if(InfoStruct.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { if(InfoStruct.dwMajorVersion == 4 && InfoStruct.dwMinorVersion == 0) { temp += "Windows 95 "; if(InfoStruct.szCSDVersion[1] == 'C' || InfoStruct.szCSDVersion[1] == 'A') temp += "OSR2"; } else if(InfoStruct.dwMajorVersion == 4 && InfoStruct.dwMinorVersion == 10) { temp += "Windows 98 "; if(InfoStruct.szCSDVersion[1] == 'A') temp += "SE"; } else if(InfoStruct.dwMajorVersion == 4 && InfoStruct.dwMinorVersion == 90) { temp += "Windows Me"; } } else if(InfoStruct.dwPlatformId == VER_PLATFORM_WIN32s) { temp += "Microsoft Win32s"; } else if(InfoStruct.dwPlatformId == VER_PLATFORM_WIN32_NT) { if(InfoStruct.dwMajorVersion == 5 && InfoStruct.dwMinorVersion == 2) { temp += "Windows Server 2003 family"; } else if(InfoStruct.dwMajorVersion == 5 && InfoStruct.dwMinorVersion == 1) { temp += "Windows XP "; } else if(InfoStruct.dwMajorVersion == 5 && InfoStruct.dwMinorVersion == 0) { temp += "Windows 2000 "; } else if(InfoStruct.dwMajorVersion <= 4) { temp += "Windows NT "; } if(bOSVERSIONINFOEX) { if(InfoStruct.wProductType == VER_NT_WORKSTATION) { if(InfoStruct.dwMajorVersion == 4) { temp += "Workstation 4.0 "; } else if(InfoStruct.wSuiteMask & VER_SUITE_PERSONAL) { temp += "Home Edition "; } else { temp += "Professional "; } } } else if(InfoStruct.wProductType == VER_NT_SERVER) { if(InfoStruct.dwMajorVersion == 5 && InfoStruct.dwMinorVersion == 2) { if(InfoStruct.wSuiteMask & VER_SUITE_DATACENTER) { temp += "Datacenter Edition "; } else if(InfoStruct.wSuiteMask & VER_SUITE_ENTERPRISE) { temp += "Enterprise Edition "; } else if(InfoStruct.wSuiteMask & VER_SUITE_BLADE) { temp += "Web Edition"; } else { temp += "Standart Edition "; } } else if(InfoStruct.dwMajorVersion == 5 && InfoStruct.dwMinorVersion == 0) { if(InfoStruct.wSuiteMask & VER_SUITE_DATACENTER) { temp += "Datacenter Server "; } else if(InfoStruct.wSuiteMask & VER_SUITE_ENTERPRISE) { temp += "Advanced Server "; } else { temp += "Server "; } } else { if(InfoStruct.wSuiteMask & VER_SUITE_ENTERPRISE) { temp += "Server 4.0, Enterprise Edition "; } else { temp += "Server 4.0 "; } } } } return temp; }
sollte eigendlich funken
Meep Meep
-
Bei mir kommen immer die fehlermeldung:
Undefiniertes Symbol 'VER_SUITE_PERSONAL'
Undefiniertes Symbol 'VER_SUITE_BLADE'Was muss ich da einbinden das es funktioniert?
-
die sind in der winnt.h definiert. Zeile 915 und 916 (BCB6)
Meep Meep