У вас неверные версии.Сервер Vista / 2008 версии 6.0.Ваш тест должен быть:
CheckWin32Version(6,0)
Я полагаю, что вы используете Delphi 2010 или более позднюю версию, и в этом случае вам следует просто вызвать функцию DwmCompositionEnabled
из встроенного модуля Dwmapi
.Это организует проверку версии и отложенную привязку для вас.Нет необходимости в JEDI.
Редактировать: Текст ниже был написан до того, как вопрос был отредактирован.
Вероятно, самый простой способ - проверить версию Windows.Вам нужно Win32MajorVersion>=6
(т.е. сервер Vista или 2008) для вызова DwmIsCompositionEnabled
.
Если бы вы связывали себя, то вы бы позвонили LoadLibrary
с DWMApi.dll
, и если это удастся, вы бы позвонили GetProcAddress
для связывания.Если это удалось, вы хороши.Но, как я уже сказал, поскольку вы не обрабатываете привязку самостоятельно, проверка версии, вероятно, самая простая.
Таким образом, функция будет выглядеть так:
function AeroEnabled: boolean;
var
enabled: bool;
begin
if Win32MajorVersion>=6 then begin
DwmIsCompositionEnabled(enabled);
Result := enabled;
end else begin
Result := False;
end;
end;
Обратите внимание, яПредполагая, что ваша библиотека выполняет позднее связывание, то есть явное связывание.Если нет, то вам понадобится LoadLibrary / GetProcAddress, точно так же, как это делается в коде @ RRUZ, на который вы ссылаетесь.