当前位置:主页>仓库管理软件> 列表

怎样判断当前用户所使用的系统版本? 找速达软件官网

库存管理软件版1楼: 就是那种判断型的label.

2楼: 自己在网上搜索一下吧。多。 如速达软件官网

3楼: function GetOSVer: PChar;
var
OS: TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize := SizeOf(OS);
GetVersionEx(OS);
Result := ''Unknown'';
if OS.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
case OS.dwMajorVersion of
3: Result := Pchar(''NT3'');
4: Result := pchar(''NT4'');
5:
begin
case OS.dwMinorVersion of
0: Result:= pchar(''2K'');
1: Result:= pchar(''XP'');
end;
end;
end;
end
else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 0) then
Result := pchar(''95'')
else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 10) then
Result := pchar(''98'')
else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 90) then
Result := pchar(''ME'')
end;

4楼: 如果我要判断2003的操作系统,楼上代码要怎么去改?

5楼: Windows操作系统大全。包括最新的Longhorn,Vista

type
POSVersionInfoEx = ^TOSVersionInfoEx;
OSVERSIONINFOEXA = record
dwOSVersionInfoSize: DWORD;
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
dwBuildNumber: DWORD;
dwPlatformId: DWORD;
szCSDVersion: Array[0..127] of AnsiChar;
wServicePackMajor: WORD;
wServicePackMinor: WORD;
wSuiteMask: WORD;
wProductType: BYTE;
wReserved: BYTE;
end;

OSVERSIONINFOEXW = record
dwOSVersionInfoSize: DWORD;
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
dwBuildNumber: DWORD;
dwPlatformId: DWORD;
szCSDVersion: Array[0..127] of WideChar;
wServicePackMajor: WORD;
wServicePackMinor: WORD;
wSuiteMask: WORD;
wProductType: BYTE;
wReserved: BYTE;
end;
OSVERSIONINFOEX = OSVERSIONINFOEXA;
TOSVersionInfoEx = OSVERSIONINFOEX;



const

{ 系统版本 }
VER_NT_WORKSTATION = $00000001;
VER_NT_DOMAIN_CONTROLLER = $00000002;
VER_NT_SERVER = $00000003;

VER_SERVER_NT = $80000000;
VER_WORKSTATION_NT = $40000000;

VER_SUITE_SMALLBUSINESS = $00000001;
VER_SUITE_ENTERPRISE = $00000002;
VER_SUITE_BACKOFFICE = $00000004;
VER_SUITE_COMMUNICATIONS = $00000008;
VER_SUITE_TERMINAL = $00000010;
VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020;
VER_SUITE_DATACENTER = $00000080;
VER_SUITE_SINGLEUSERTS = $00000100;
VER_SUITE_PERSONAL = $00000200;
VER_SUITE_BLADE = $00000400;
VER_SUITE_STORAGE_SERVER = $00000200;

function GetWindowsVersion: string; //取系统版本号
var
osVerInfo : TOSVersionInfoEx;
ExVerExist: Boolean;
ProductType: string;
Begin
Result := ''Microsoft Windows'';
ExVerExist := True;
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfoEx);
if not GetVersionEx(POSVersionInfo(@osVerInfo)^) then
begin
osVerInfo.dwOSVersionInfoSize:=SizeOf(TOSVersionInfo);
GetVersionEx(POSVersionInfo(@osVerInfo)^);
ExVerExist := False;
end;
with osVerInfo do
begin
case dwPlatformId of
VER_PLATFORM_WIN32s : Result := Result + Format('' %d.%d'',[dwMajorVersion, dwMinorVersion]);
VER_PLATFORM_WIN32_WINDOWS : { Windows 9x/ME }
begin
if (dwMajorVersion = 4) and (dwMinorVersion = 0) then
begin
Result:=Result+'' 95'';
if szCSDVersion[1] in [''B'',''C''] then
Result:=Result+'' OSR2'';
end
else if (dwMajorVersion = 4) and (dwMinorVersion = 10) then
begin
Result := Result + '' 98'';
if (osVerInfo.szCSDVersion[1] = ''A'') then

Result := Result + '' Second Edition'';
end
else if (dwMajorVersion=4) and (dwMinorVersion = 90) Then
Result:=Result + '' Millenium Edition'';
end;
VER_PLATFORM_WIN32_NT : { Windows NT/2000 }
begin
case dwMajorVersion of
3, 4: Result:=Result+Format('' NT %d.%d'',[dwMajorVersion, dwMinorVersion]);
5: begin
if dwMinorVersion=0 then
Result := Result + '' 2000''
else if dwMinorVersion = 1 then
Result := Result + '' XP''
else if dwMinorVersion = 2 then
Result := Result + '' 2003 Server'';
end;
//6: Windows Server "Longhorn" ,Windows Vista
end;
if ExVerExist then
begin
if wProductType = VER_NT_WORKSTATION then
begin
if dwMajorVersion = 4 then
Result := Result + '' Workstation''
else if wSuiteMask and VER_SUITE_PERSONAL <> 0 then
Result := Result + '' Home Edition''
else if dwMajorVersion = 6 then
Result := Result + '' Vista''
else
Result := Result + '' Professional'';
end
else if wProductType = VER_NT_SERVER then
begin
if (dwMajorVersion = 5) and (dwMinorVersion = 2) then
begin
if wSuiteMask and VER_SUITE_DATACENTER <> 0 then
Result := Result + '' Datacenter Edition''
else if wSuiteMask and VER_SUITE_ENTERPRISE <> 0 then
Result := Result + '' Enterprise Edition''
else if wSuiteMask and VER_SUITE_BLADE <> 0 then
Result := Result + '' Web Edition''
else if wSuiteMask and VER_SUITE_STORAGE_SERVER <> 0 then
Result := Result + '' R2''
else
Result := Result + '' Standard Edition'';
end
else if (dwMajorVersion = 5) and (dwMinorVersion = 0) then
begin
if wSuiteMask and VER_SUITE_DATACENTER <> 0 then
Result := Result + '' Datacenter Server''
else if wSuiteMask and VER_SUITE_ENTERPRISE <> 0 then
Result := Result + '' Advanced Server''
else
Result := Result + '' Server''
end
else if (dwMajorVersion = 6) and (dwMinorVersion = 0) then
begin
if wSuiteMask and VER_SUITE_DATACENTER <> 0 then
Result := Result + ''Server "Longhorn" Datacenter Edition''
else if wSuiteMask and VER_SUITE_ENTERPRISE <> 0 then
Result := Result + ''Server "Longhorn" Enterprise Edition''

end
else
begin
Result:=Result+'' Server'';
if wSuiteMask and VER_SUITE_ENTERPRISE <> 0 then
Result:=Result+'' Enterprise Edition'';
end;
end;
end
else
begin
with TRegistry.Create do
begin
try
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey(''\SYSTEM\CurrentControlSet\Control\ProductOptions'',False) then
begin
if ValueExists(''ProductType'') then
begin
ProductType:=ReadString(''ProductType'');
if SameText(ProductType,''WinNT'') then
Result:=Result+'' Workstation''
else if SameText(ProductType,''LanManNT'') then
Result:=Result+'' Server''
else if SameText(ProductType,''ServerNT'') then

Result:=Result+'' Advance Server'';
end;
CloseKey;
end;
finally
Free;
end;
end;
end;
Result:=Result+'' ''+szCSDVersion;
if (dwMajorVersion=4) and SameText(szCSDVersion,''Service Pack 6'') then
begin
with TRegistry.Create do
begin
try
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey(''\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\Q246009'',False) then
begin
Result:=Result+''a'';
CloseKey;
end;
finally
Free;
end;
end;
end;
end;
end;
Result := Format(Result + '' (%d.%d Build %d)'',[
dwMajorVersion,
dwMinorVersion,
dwBuildNumber and $FFFF]);
end
end;

6楼: [:D]楼上正解,收藏

库存管理软件版7楼: 收藏

8楼: 收了

9楼: 接受答案了.