检查Windows Server 2003 [英] Checking for Windows Server 2003
问题描述
我创建了这些函数,用于在Windows Server 2003上安装一些文件,我想知道这是否正确.
I created theses functions for installing some files on windows server 2003, I want to know if this is the correct way.
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;
推荐答案
您没有向我们展示UsingWinNT
的作用-尽管您绝对不需要检查"NT"-Inno Setup制作的安装程序不会甚至可以在非NT系统上启动.
You didn't show us what UsingWinNT
does - Though you definitely do not need to check for "NT" - Inno Setup-made installer won't even start on non-NT system.
IsServer64
即使在 Windows XP Professional x64 Edition上也将返回true.具有5.2版本.
要区分这些,请测试ver.ProductType = VER_NT_SERVER
.
请参阅如何以编程方式分辨XP 64位和Server 2003 64位之间的区别
To distinguish these, test ver.ProductType = VER_NT_SERVER
.
See How to programmatically tell the difference between XP 64 bit and Server 2003 64 Bit
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 Server 2003的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!