|
| Windows detection routines |  
|
|---|
Product: Delphi all versions | Category: System | Skill Level:
 | Scoring:  | Last Update: 03/25/2002 | Search Keys: delphi delphi3000 article borland vcl code-snippet Windows-NT Windows-ME Windows-98 Windows-95 Windows-2000 Windows-XP | Times Scored: 7 | Visits: 2502 | Uploader: Ronald Buster Company: DISPI software Engineering | Reference: dispi.com | | | Question/Problem/Abstract:
Here is how to find out almost everything of windows versions.
regards
Ronald
| Answer:
function IsWin31 : Boolean;
var OS : TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
Result := (Os.dwPlatformId = VER_PLATFORM_WIN32s);
end;
function IsWin95 : Boolean;
var OS : TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
result:=(OS.dwMajorVersion >= 4) and (OS.dwMinorVersion = 0) and (OS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS);
end;
function IsWin95OSR2 : Boolean;
var
OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
result:=(OS.dwMajorVersion >= 4) and (OS.dwMinorVersion = 0) and (lo(OS.dwBuildNumber) > 1000) and (OS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS);
end;
function IsWinNT: Boolean;
var OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
result:=OS.dwPlatformId=VER_PLATFORM_WIN32_NT;
end;
function IsWin98 : Boolean;
var OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
result:=(OS.dwMajorVersion >= 4) and (OS.dwMinorVersion > 0) and (OS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS);
end;
function IsWin98se : Boolean;
var OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
result:=(OS.dwMajorVersion >= 4) and (OS.dwMinorVersion > 0) and (lo(OS.dwBuildNumber) > 2000) and (OS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS);
end;
function IsWin2000 : Boolean;
var OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
result := (OS.dwMajorVersion >= 5) and (OS.dwPlatformId = VER_PLATFORM_WIN32_NT);
end;
function IsWinXP : Boolean;
var OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
result := (OS.dwMajorVersion >= 5) and (OS.dwMinorVersion >= 1) and (OS.dwPlatformId = VER_PLATFORM_WIN32_NT);
end;
function IsWinMe : Boolean;
var OS :TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
result:=(OS.dwMajorVersion >= 4) and (OS.dwMinorVersion >= 90) and (OS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS);
end;
function GetNTType : String;
var r : TRegistry;
ts : String;
begin
Result := '[UNKNOWN]';
if IsWinNT then
begin
r := TRegistry.Create;
r.RootKey := HKEY_LOCAL_MACHINE;
r.OpenKey('SYSTEM\CurrentControlSet\Control\ProductOptions',False);
ts := AnsiUpperCase(R.ReadString('ProductType'));
r.Free;
if (ts = 'WINNT') then
begin
result := 'Workstation';
if IsWin2000 then
result := 'Professional';
end
else if (ts = 'SERVERNT') then
begin
result := 'Server';
end
else if (ts = 'LANMANNT') then
begin
result := 'Advanced Server';
end;
end;
end;
|
|
|
| |
Sign up to consume product discounts for Bronze memberships !
|
|
| |
Community Ad of C.A. Longen |
|
| |
|
|
|