Я разобрался почему ABTool отображает неверную версию Windows на вкладке «Система». Об этом я написал здесь.
Проблема в том, что для определения версии системы я использовал функцию GetVersionEx. А в ОС Win8.1 и выше эта функция возвращает версию ОС = 6.2.9200. Это чётко описано на этой странице MSDN, смотреть последнюю строку с пометкой *.
* For applications that have been manifested for Windows 8.1 or Windows 10. Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). To manifest your applications for Windows 8.1 or Windows 10, refer to Targeting your application for Windows.
Всё начинается с того, что необходимо создать (если не было) или изменить файл манифеста, который будет использовать или уже используется в проекте. Этим манифестом «подписывается» программа, exe-файл с целью, попросту говоря, обеспечить систему информацией о совместимости, требованиях (админ. прав, например) и пр.
Чтобы полностью понять, что от тебя требуется сделать, чтобы получить верный код версии системы >= Win8.1, необходимо перейти по последней ссылке. Здесь я скажу лишь то, что мне пришлось только отредактировать существующий файл манифеста следующим образом:
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <!-- Эта секция уже есть в твоём манифесте --> <application> ... <!-- Просто добавляешь эти строки --> <!-- Windows 8.1 --> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <!-- Windows 10 --> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> </application> </compatibility>
После компиляции ABTool стала верно отображать версию системы, даже не пришлось менять сам код.
Важно! Прочти этот пост GunSmoker’а: sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1076778&msg=15553937
Из него следует, что использовать GetVersionEx несовсем хорошо, т.к.
Эксперименты показали, что GetVersion(Ex) эмулируются слоем обратной совместимости, а VerifyVersionInfo — нет.
Там же можно посмотреть результаты этого эксперимента.
P.S. Также может оказаться полезной вот эта ссылка: msdn.microsoft.com/ru-ru/library/windows/desktop/dn424972(v=vs.85).aspx