Проверка на Windows Server 2003 - PullRequest
       7

Проверка на Windows Server 2003

0 голосов
/ 30 ноября 2018

Я создал эти функции для установки некоторых файлов на Windows Server 2003, я хочу знать, если это правильный путь.

function IsServer: Boolean;
var
  ver: TWindowsVersion;
begin
  GetWindowsVersionEx(ver);
  Result := UsingWinNT and (ver.Major = 5) and (ver.Minor >= 2) and Not IsWin64;
end;

function IsServer64: Boolean;
var
  ver: TWindowsVersion;
begin
  GetWindowsVersionEx(ver);
  Result := UsingWinNT and (ver.Major = 5) and (ver.Minor >= 2) and IsWin64;
end;

1 Ответ

0 голосов
/ 30 ноября 2018

Вы не показали нам, что делает UsingWinNT - Хотя вам определенно не нужно проверять «NT» - установщик Inno Setup даже не запустится в системе, отличной от NT.


IsServer64 вернет true даже на Windows XP Professional x64 Edition, так как он также имеет версию 5.2 .

Чтобы различать их, протестируйте ver.ProductType = VER_NT_SERVER.
См. Как программно определить разницу между 64-разрядной версией XP и 64-разрядной версией 2003 сервера


function IsWindowsServer2003_32Bit: Boolean;
var
  Ver: TWindowsVersion;
begin
  GetWindowsVersionEx(Ver);
  Result :=
    (Ver.ProductType = VER_NT_SERVER) and
    (Ver.Major = 5) and (Ver.Minor = 2) and (not IsWin64);
end;

function IsWindowsServer2003_64Bit: Boolean;
var
  Ver: TWindowsVersion;
begin
  GetWindowsVersionEx(Ver);
  Result :=
    (Ver.ProductType = VER_NT_SERVER) and
    (Ver.Major = 5) and (Ver.Minor = 2) and IsWin64;
end;

См. Также Определение версии Windows в Inno Setup .

...