Aion tehdä muutaman ohjelman sekä 16 että 32 bittisinä versioina mutta mietityttää että miten selvitetään käyttiksen, siis Windowsin versionumero.
Miten esim. ME, NT 4, NT 5 eli Windows 2000 ja XP ilmaisevat versionumeronsa? Entä miten 98 SE:n versionumero erotetaan alkuperäisestä 98:sta?
Käytän ohjelmointiin 16-bittistä Visual Basicia 16-bittisten luomiseen ja Rapid-Q:ta (ilmainen Visual Basic klooni) 32-bittisten versioiden luomiseen.
Miten esim. ME, NT 4, NT 5 eli Windows 2000 ja XP ilmaisevat versionumeronsa? Entä miten 98 SE:n versionumero erotetaan alkuperäisestä 98:sta?
Käytän ohjelmointiin 16-bittistä Visual Basicia 16-bittisten luomiseen ja Rapid-Q:ta (ilmainen Visual Basic klooni) 32-bittisten versioiden luomiseen.
Vastaukset 2
Vanhimmat
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getversion.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/verifyversioninfo.asp
Eiköhän noilla pärjää :)
OSVERSIONINFO osv;
osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
CString WindowsPlatform;
if (GetVersionEx(&osv))
{
// note: szCSDVersion = service pack release
CString ServiceRelease = osv.szCSDVersion;
switch(osv.dwPlatformId)
{
case VER_PLATFORM_WIN32s: //Win32s on Windows 3.1.
WindowsPlatform = "Microsoft® Windows 3.1(TM)";
break;
case VER_PLATFORM_WIN32_WINDOWS: //WIN32 on 95 or 98
//determine if Win95 or Win98
if (osv.dwMinorVersion == 0)
{
WindowsPlatform = "Microsoft® Windows 95(TM) " ServiceRelease;
}
else
{
WindowsPlatform = "Microsoft® Windows 98(TM) " ServiceRelease;
}
break;
case VER_PLATFORM_WIN32_NT: //Win32 on Windows NT.
WindowsPlatform = "Microsoft® Windows NT(TM) " ServiceRelease;
break;
default:
AfxMessageBox("Failed to get correct Operating System.", MB_OK);
} //end switch
} //end if
#:) jne...