Einzelnen Beitrag anzeigen

ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#47

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 14. Jan 2009, 05:51
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;
  Mit Zitat antworten Zitat