Как узнать имя и версию операционой системы.
Как узнать имя и версию операционой системы.
BOOL GetVersionEx(
LPOSVERSIONINFO lpVersionInfo // version information
);
где структура VERSIONINFO выглядит так:
typedef struct _OSVERSIONINFO{
DWORD dwOSVersionInfoSize; // это надо поставить в sizeof(OSVERSIONINFO)
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
} OSVERSIONINFO;
начиная с Windows NT 4.0 SP6 можно передавать адрес на структуру OSVERSIONINFOEX:
typedef struct _OSVERSIONINFOEX {
DWORD dwOSVersionInfoSize; // тут нада sizeof(OSVERSIONINFOEX)
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEX, *POSVERSIONINFOEX, *LPOSVERSIONINFOEX;
какие версии что значат:
dwMajorVersion
Определяет основную версию:
Windows 95 4
Windows 98 4
Windows Me 4
Windows NT 3.51 3
Windows NT 4.0 4
Windows 2000 5
Windows XP 5
Windows .NET Server 5
dwMinorVersion
подверсия
Windows 95 0
Windows 98 10
Windows Me 90
Windows NT 3.51 51
Windows NT 4.0 0
Windows 2000 0
Windows XP 1
Windows .NET Server 1
т.е скажем если dwMajorVersion равно 5, а dwMinorVersion равно 1, то мы на WindowsXP
остальные поля позволяют определить больше инфы, в общем читай MSDN http://msdn.microsoft.com
вызов простой:
OSVERSIONINFO osvi={0};
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO)
GetVersionEx (&osvi);
....
можно еще через API...
Но можно так....system("ver>test.txt")....и считать из файла...:)
BOOL GetVersionEx(
LPOSVERSIONINFO lpVersionInfo // version information
);
где структура VERSIONINFO выглядит так:
typedef struct _OSVERSIONINFO{
DWORD dwOSVersionInfoSize; // это надо поставить в sizeof(OSVERSIONINFO)
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
} OSVERSIONINFO;
начиная с Windows NT 4.0 SP6 можно передавать адрес на структуру OSVERSIONINFOEX:
typedef struct _OSVERSIONINFOEX {
DWORD dwOSVersionInfoSize; // тут нада sizeof(OSVERSIONINFOEX)
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEX, *POSVERSIONINFOEX, *LPOSVERSIONINFOEX;
какие версии что значат:
dwMajorVersion
Определяет основную версию:
Windows 95 4
Windows 98 4
Windows Me 4
Windows NT 3.51 3
Windows NT 4.0 4
Windows 2000 5
Windows XP 5
Windows .NET Server 5
dwMinorVersion
подверсия
Windows 95 0
Windows 98 10
Windows Me 90
Windows NT 3.51 51
Windows NT 4.0 0
Windows 2000 0
Windows XP 1
Windows .NET Server 1
т.е скажем если dwMajorVersion равно 5, а dwMinorVersion равно 1, то мы на WindowsXP
остальные поля позволяют определить больше инфы, в общем читай MSDN http://msdn.microsoft.com
вызов простой:
OSVERSIONINFO osvi={0};
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO)
GetVersionEx (&osvi);
....
Спасибо, а MSDN я и так читаю....
Прошу прощения за глупый вопрос, но никак не удаётся перевести параметр DWORD dwBuildNumber в string.
All
Прошу прощения за глупый вопрос, но никак не удаётся перевести параметр DWORD dwBuildNumber в string.
wsprintf(str, "%d", dwBuildNumber);
или так:
CString s;
s.Format("%d", dwBuildNumber);
CString s;
s.Format("%d", dwBuildNumber);
- нормально прокатило. Спасибо!