Windows - descobrindo versao |
Top Previous Next |
|
Retorna a versão do Windows ===========================
function VersaoWindows: string; var verInfo: TOsVersionInfo; S : String; I : Word; begin verInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if GetVersionEx(verInfo) then begin S := 'Windows '; case verInfo.dwPlatformId of VER_PLATFORM_WIN32s : S := S + '95'; VER_PLATFORM_WIN32_WINDOWS : S := S + '98 ou 95 OSR2'; VER_PLATFORM_WIN32_NT : S := S + 'NT'; end; Result := S + #32 + IntToStr(verInfo.dwMajorVersion) + '.' + IntToStr(verInfo.dwMinorVersion) + '.' + IntToStr(verInfo.dwBuildNumber);
if verInfo.dwMajorVersion = 5 then if verInfo.dwMinorVersion = 0 then S := 'Windows 2000' else S := 'Windows XP'; end else Result := 'ERRO'; end;
//------------------ MAIS COMPLETO -------------------
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; |