Ich hoffe ich zweckentfremde den Thread nicht, aber ich habe mir die Komponente um eine Funktion erweitert damit ich für eine einfache Abfrage der Betriebssystemversion in meinen Programmen nicht extra eine Klasse erzeugen bzw. wieder freigeben muss. Vielleicht kann es ja noch jemand gebrauchen.
Hier die entsprechenden Erweiterungen in der WindowsVersionInfo.pas:
Delphi-Quellcode:
interface
.
.
.
type
// Vergleichsmodus auswählen
// Wird nur für die Funktion "CheckWinVer" benötigt
TCompareMode = (
Like, // gleich
GreaterThan, // größer als
GreaterLike, // größer gleich
LessThan, // kleiner
LessLike, // kleiner gleich
OutSide // außerhalb
);
.
.
.
// Einfache Abfrage der Windowsversion ohne extern die Klasse verwenden zu müssen
function CheckWinVer(CompareMode : TCompareMode; CompareWinVer : TWindowsVersions) : Boolean;
implementation
.
.
.
// Einfache Abfrage der Windowsversion ohne extern die Klasse verwenden zu müssen
function CheckWinVer(CompareMode : TCompareMode; CompareWinVer : TWindowsVersions) : Boolean;
var
wvi : TWindowsVersionInfo;
begin
Result := False;
{$IFDEF USE_VCL}
wvi := TWindowsVersionInfo.Create(nil);
{$ELSE}
wvi := TWindowsVersionInfo.Create;
{$ENDIF}
case CompareMode of
Like : if wvi.WindowsVersion = CompareWinVer then Result := True;
GreaterThan : if wvi.WindowsVersion > CompareWinVer then Result := True;
GreaterLike : if wvi.WindowsVersion >= CompareWinVer then Result := True;
LessThan : if wvi.WindowsVersion < CompareWinVer then Result := True;
LessLike : if wvi.WindowsVersion <= CompareWinVer then Result := True;
OutSide : if wvi.WindowsVersion <> CompareWinVer then Result := True;
end;
FreeAndNil(wvi);
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckWinVer(Like, wvWinXP) then
ShowMessage('WinXP')
else
ShowMessage('Kein WinXP');
end;