Цитата Vanadiy777:
Похоже, что в этом компиляторе, процедура GetWindowsVersionEx так же не понимает новые Major, Minor, »
|
Именно так, это было исправлено в версии
5.5.6
И это можно легко исправить самому через изменение манифеста:
1. Открыть Setup.e32 и SetupLdr.e32 в Resource Hacker
2. Открыть Manifest
там в конце xml-манифеста будет секция
Код:
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
.....
</application>
её надо исправить на
Код:
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
после этого скомпилировать изменённый манифест (F5)
3. Сохранить изменённый файл
Код для тестирования
Код:
procedure TestWindowsVersion();
var
V: TWindowsVersion;
begin
GetWindowsVersionEx(V);
MsgBox(Format( \
'Major'#09'%d'#13 \
'Minor'#09'%d'#13 \
'Build'#09'%d'#13 \
'SPMajor'#09'%d'#13 \
'SPMinor'#09'%d'#13 \
, [V.Major, V.Minor, V.Build, V.ServicePackMajor, V.ServicePackMinor]), mbInformation, MB_OK);
end;
function InitializeSetup(): Boolean;
begin
TestWindowsVersion()
Result := False
end;