Определите, является ли O/S Windows 7

Работая над проектом и потребностью быть в состоянии определить, является ли O/S Windows 7, Vista или дефолтом к XP. Я понимаю, что мог столкнуться с Win2K и более ранними версиями, но позвольте нам просто сказать, что это не беспокойство, поскольку другой кодекс поймает это, прежде чем это доберется до этого пункта. Мое заявление будет в C ++ в настоящее время использующий VS2005. Я нашел статьи и пример кода одинаково, но они кажутся путем, раздутым для моего использования. Просто ища быстрое и грязное возвращение.

http://msdn.microsoft.com/en-us/library/ms724358%28VS.85%29.aspx

9
задан Jeff 20 January 2010 в 15:18
поделиться

3 ответа

Список версии Windows , используя getVersionex :

Version Number    Description
6.1               Windows 7     / Windows 2008 R2
6.0               Windows Vista / Windows 2008
5.2               Windows 2003 
5.1               Windows XP
5.0               Windows 2000
19
ответ дан 4 December 2019 в 06:09
поделиться

Это поведение можно получить, используя правильную конфигурацию при создании экземпляра объекта Ext.form.ComboBox:

var selectStyleComboboxConfig = {
    fieldLabel: 'My Dropdown',
    name: 'type',
    allowBlank: false,
    editable: false,
    // This is the option required for "select"-style behaviour
    triggerAction: 'all',
    typeAhead: false,
    mode: 'local',
    width: 120,
    listWidth: 120,
    hiddenName: 'my_dropdown',
    store: [
        ['val1', 'First Value'],
        ['val2', 'Second Value']
    ],
    readOnly: true
};
var comboBox = new Ext.form.ComboBox(selectStyleComboboxConfig); 

Замените режим : «local» и store в вашем случае, если вы хотите, чтобы он был связан, например, с Ext.data.JsonStore .

-121--2140008-

Вы пытались typeAhead = false ? Не слишком уверен, что это близко к тому, что ты хочешь.

var combo = new Ext.form.ComboBox({
    typeAhead: false,

    ...

});
-121--2140010-

Как правило, вы не хотите проводить тестирование по определенному номеру версии, а скорее проверяете наличие определенной функции. Если вы действительно хотите обнаружить «Windows 7 или более позднюю версию», однако...

#include <windows.h>

bool IsWin7OrLater() {
    DWORD version = GetVersion();
    DWORD major = (DWORD) (LOBYTE(LOWORD(version)));
    DWORD minor = (DWORD) (HIBYTE(LOWORD(version)));

    return (major > 6) || ((major == 6) && (minor >= 1));
}

Для 2000 сравните основные и второстепенные соответственно с 5 и 0. Для XP сравните с 5 и 1. Для Vista - 6 и 0.

18
ответ дан 4 December 2019 в 06:09
поделиться

Как правило, вы можете использовать getVersionex , чтобы найти версию Windows. Возможно, более безопасный способ использовать VerifyVersionInfo . Существуют C примеры для обоих getVersionex и verifyversioninfo .

Однако, как неоднократно указано на MSDN , проверка версии операционной системы, как правило, не лучший способ определения того, присутствует конкретная функция .

3
ответ дан 4 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: