Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 352
Благодарности: 193

Профиль | Отправить PM | Цитировать


Цитата 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;

Последний раз редактировалось iglezz, 29-01-2023 в 15:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:14, 29-01-2023 | #1033