Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать имя и версию операционой системы.

550
07 января 2003 года
matwey
82 / / 03.12.2002
Как узнать имя и версию операционой системы.
380
08 января 2003 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by matwey
Как узнать имя и версию операционой системы.




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);
....

374
08 января 2003 года
Pennywise
158 / / 20.05.2000
Самый простой....system("ver")...return пихаешь в массив и читаешь его в цикле...что бы версия и имя были в разных переменных....

можно еще через API...
374
08 января 2003 года
Pennywise
158 / / 20.05.2000
sorry....погнал...я....ver возвращает булев....:(....

Но можно так....system("ver>test.txt")....и считать из файла...:)
550
08 января 2003 года
matwey
82 / / 03.12.2002
Цитата:
Originally posted by Arestov



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 я и так читаю....

281
30 марта 2006 года
Fan][
279 / / 19.12.2003
All

Прошу прощения за глупый вопрос, но никак не удаётся перевести параметр DWORD dwBuildNumber в string.
534
30 марта 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by Fan][
All

Прошу прощения за глупый вопрос, но никак не удаётся перевести параметр DWORD dwBuildNumber в string.

wsprintf(str, "%d", dwBuildNumber);
или так:
CString s;
s.Format("%d", dwBuildNumber);

281
03 апреля 2006 года
Fan][
279 / / 19.12.2003
HarryAxe

Цитата:

CString s;
s.Format("%d", dwBuildNumber);



- нормально прокатило. Спасибо!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог