Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > [C++] Определение версии ОС и битности.


Автор: MuForum 19.2.2010, 13:10
Доброе время суток.

# Задача: Необходимо вывести в лог полную версию винды и битность.
- Начиная от XP и выше...

# Образец:
Цитата

1. Windows XP Professional SP3 32-bit
2. Windws Seven Ultimate 64-bit
и т.д.



# Добавлено: Как определить битность системы я вроде разобрался. (32 или 64 битная)
Код

typedef BOOL (WINAPI *IW64PFP)(HANDLE, BOOL *);
//---------------------------------------------------------------------------

int GetWindowsBitness()
{
    int result = 32;
    // ----
    // When this application is compiled as a 32-bit app,
    // and run on a native 64-bit system, Windows will run
    // this application under WOW64.  WOW64 is the Windows-
    // on-Windows subsystem that lets native 32-bit applications
    // run in 64-bit land.  This calls the kernel32.dll
    // API to see if this process is running under WOW64.
    // If it is running under WOW64, then that clearly means
    // this 32-bit application is running on a 64-bit OS,
    // and IsWow64Process will return true.
    IW64PFP IW64P = (IW64PFP)GetProcAddress(GetModuleHandle("kernel32"), "IsWow64Process");
    // ----
    if(IW64P != NULL)
    {
        bool bStatus = false;
        // ----
        IW64P(GetCurrentProcess(), &bStatus);
        // ----
        result = (bStatus) ? 64 : 32;
    }
    // ----
    return result;
}

- А вот как определить полную версию ОС, пока не не получается реализовать.
- Мне нужно определять от XP и выше. (Предыдущие версии определять не надо.)


P.S. -> Надеюсь на помощь, подсказки.

Автор: SenkraD 19.2.2010, 13:23
http://www.codeproject.com/KB/system/XWinVer.aspx может поможет + http://www.codeproject.com/KB/system/winvertable.aspx

Автор: MuForum 19.2.2010, 13:31
Цитата(SenkraD @ 19.2.2010,  13:23)
http://www.codeproject.com/KB/system/XWinVer.aspx может поможет + http://www.codeproject.com/KB/system/winvertable.aspx

То, что нужно.
+1 в репу за оперативную помощь.

Автор: artsb 19.2.2010, 17:57
Цитата(MuForum @  19.2.2010,  13:10 Найти цитируемый пост)
- А вот как определить полную версию ОС

MuForum, всегда можно заглянуть на MSDN - http://msdn.microsoft.com/en-us/library/ms724833%28VS.85%29.aspx.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)