AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

OS auslesen

Ein Thema von michael.funcke · begonnen am 22. Apr 2011 · letzter Beitrag vom 10. Okt 2015
Antwort Antwort
Seite 1 von 2  1 2   
michael.funcke

Registriert seit: 22. Apr 2011
9 Beiträge
 
Delphi 2010 Architect
 
#1

OS auslesen

  Alt 22. Apr 2011, 22:49
Hi,

würde gerne für mein Programm das OS (nur Windows) des Benutzers auslesen. Dabei wären Win95, Win98, Win2000, WinXP, WinVista und Win7 von Bedeutung. Die ganzen NT-Systeme brauche ich nicht unbedingt.

Hab
http://www.delphipraxis.net/145865-b...-auslesen.html
http://www.delphipraxis.net/75631-wi...und-vista.html
http://msdn.microsoft.com/en-us/library/ms724834
schon durchgelesen, aber das ergibt für mich alles keinen Sinn.
Gibt es fertigen Code, den man nehmen kann, um das OS auszulesen und nachher in nem String stehen zu haben?

Danke schonmal für alle Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

AW: OS auslesen

  Alt 23. Apr 2011, 00:24
Es gibt da schon dutzende Threads (bestimmt) dafür hier. Meine ultimative Lösung war immer "cmd /c ver" aufzurufen und das auszulesen, was am Ende rauskommt, denn das sollte aller Wahrscheinlichkeit nach stimmen. Du kannst aber auch dich selbst auf den Weg machen und mit Hilfe von MSDN-Library durchsuchenGetVersionEx() dir die Versionsnummer des Systems geben lassen. Dann kannst du anhand von den ersten beiden Stellen ermitteln, was du für ein System vor dir hast. Win XP hat die Nummer 5, Vista 6 und Win7 6.1. Alle anderen Systeme solltest du eh nicht mehr finden und wenn doch, dann nur noch in Ausnahmefällen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!

Geändert von rollstuhlfahrer (23. Apr 2011 um 00:25 Uhr) Grund: Typo, richtige Funkion
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: OS auslesen

  Alt 23. Apr 2011, 02:04
Dir ist schon klar, dass ab Windiws2000 alles NT Systeme sind? Und fertigen Code hast du doch schon gefunden. Was willst du denn noch?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#4

AW: OS auslesen

  Alt 23. Apr 2011, 03:27
Ja, sowas gibt es. In der Delphi-Praxis findest du es unter "Windows version ermitteln" in der Suchfunktion. Probier es mal aus, gibt ne Menge guter Sachen darin. Über google wirst du das so nicht schnell finden.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

AW: OS auslesen

  Alt 23. Apr 2011, 07:44
Erst vor kurzem durchs Forum drauf gestossen:

SysUtils bietet schon Minor/Major/Build/CSD/Platform an. Einfach mal SysUtils.Win32 eingeben und schauen was angeboten wird.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.406 Beiträge
 
Delphi XE8 Enterprise
 
#6

AW: OS auslesen

  Alt 23. Apr 2011, 08:32
Oder noch einfacher das Betriebssystem aus der Registry auslesen. Es steht seit Windows 2000 immer an der gleichen Stelle.
Rolf Warnecke
EasyNetSoft
  Mit Zitat antworten Zitat
michael.funcke

Registriert seit: 22. Apr 2011
9 Beiträge
 
Delphi 2010 Architect
 
#7

AW: OS auslesen

  Alt 23. Apr 2011, 17:20
Zitat:
Dir ist schon klar, dass ab Windiws2000 alles NT Systeme sind?
Nein, das war mir nicht klar. Danke.

Hab jetzt meine Lösung gefunden:
Code:
function TForm1.GetOperatingSystem(): String;
var
  osVerInfo: TOSVersionInfo;
  majorVer, minorVer: Integer;
begin
  osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
  if GetVersionEx(osVerInfo) then
  begin
    majorVer := osVerInfo.dwMajorVersion;
    minorVer := osVerInfo.dwMinorVersion;
    case osVerInfo.dwPlatformId of
      // Windows NT/2000
      VER_PLATFORM_WIN32_NT:
        begin
          if majorVer <= 4 then
            Result := 'WinNT'
          else if (majorVer = 5) and (minorVer = 0) then
            Result := 'Win2000'
          else if (majorVer = 5) and (minorVer = 1) then
            Result := 'WinXP'
          else if (majorVer = 6) and (minorVer = 0) then
            Result := 'WinVista'
          else if (majorVer = 6) and (minorVer = 1) then
            Result := 'Win7'
          else
            Result := 'Unknown';
        end;
      // Windows 9x/ME
      VER_PLATFORM_WIN32_WINDOWS:
        begin
          if (majorVer = 4) and (minorVer = 0) then
            Result := 'Win95'
          else if (majorVer = 4) and (minorVer = 10) then
          begin
            if osVerInfo.szCSDVersion[1] = 'A' then
              Result := 'Win98SE'
            else
              Result := 'Win98';
          end
          else if (majorVer = 4) and (minorVer = 90) then
            Result := 'WinME'
          else
            Result := 'Unknown';
        end;
      else
        Result := 'Unknown';
    end;
  end
  else
    Result := 'Unknown';
end;
Danke euch!
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#8

AW: OS auslesen

  Alt 24. Apr 2011, 15:23
Hab jetzt meine Lösung gefunden:
function TForm1.GetOperatingSystem(): String;
Greift die Methode GetOperatingSystem() irgendwie auf das Formular zu?
Das war jetzt eine rethorische Frage; nein, GetOperatingSystem() greift nicht auf das
Formular zu und es hat absolut nichts mit dem Formular zu tun.

Also sollte man aus der Methode eine ganz normale Funktion machen:
function GetOperatingSystem(): String;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: OS auslesen

  Alt 24. Apr 2011, 16:28
Und statt String AnsiString verwenden, dann gibt es weniger Ärger später mit Delphi2009.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
16.879 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: OS auslesen

  Alt 24. Apr 2011, 16:33
Und statt String AnsiString verwenden, dann gibt es weniger Ärger später mit Delphi2009.
Eher mehr Arger denn TOSVersionInfo liegt auch in einer A und W-Version vor, so das man hier wenn man schon AnsiString verwendet auch gleich fest an TOSVersionInfoA binden muss und nicht zuverlässig beim D2009-Umstieg eine Compilerwarnung zu haben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf