Мы используем функцию GetWindowsVersionEx для извлечения значений версии сборки в Windows. Он отлично работает во всех операционных системах, но в Windows 2012-R2, выпущенном недавно, он дает неверный результат. Фактическая версия сборки - 6.3, но ее отображение - только 6.2. Итак, когда я провел некоторое исследование, я нашел ссылку ниже, чтобы решить проблему. Но я не понимаю, как это реализовать в коде настройки inno.Функция GetWindowsVersionEx неверна в windows 2012 R2
Помогите оценить.
Ссылка: http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074%28v=vs.85%29.aspx
[Setup]
AppName=My Program
AppVersion=1.5
DisableProgramGroupPage=yes
DefaultGroupName=My Program
OutputDir=c:\output
DefaultDirName={sd}\MYPROG
UninstallDisplayIcon={app}\MyProg.exe
[code]
var
Version: TWindowsVersion;
function InitializeSetup(): Boolean;
begin
GetWindowsVersionEx(Version);
SuppressibleMsgBox('Major='+ IntToStr(Version.Major)+ ' Minor='+IntToStr(Version.Minor),mbCriticalError, MB_OK, MB_OK);
end;
Какую версию Inno Setup вы используете? Я просмотрел манифест приложения, скомпилированный с помощью Inno Setup 5.5.4 (u), и он уже включает запись для Windows 8.1. Таким образом, либо вы используете более старую версию IS, либо предложение из '' связанной статьи' '(http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074%28v=vs.85 % 29.aspx) не работает должным образом. – TLama