OS auslesen
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! :thumb: |
AW: OS auslesen
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 GetVersionEx() 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 |
AW: OS auslesen
Dir ist schon klar, dass ab Windiws2000 alles NT Systeme sind? Und fertigen Code hast du doch schon gefunden. Was willst du denn noch?
|
AW: OS auslesen
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.
|
AW: OS auslesen
Zitat:
SysUtils bietet schon Minor/Major/Build/CSD/Platform an. Einfach mal SysUtils.Win32 eingeben und schauen was angeboten wird. |
AW: OS auslesen
Oder noch einfacher das Betriebssystem aus der Registry auslesen. Es steht seit Windows 2000 immer an der gleichen Stelle.
|
AW: OS auslesen
Zitat:
Hab jetzt meine Lösung gefunden:
Code:
Danke euch! :thumb:
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; |
AW: OS auslesen
Zitat:
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:
Delphi-Quellcode:
function GetOperatingSystem(): String;
|
AW: OS auslesen
Und statt String AnsiString verwenden, dann gibt es weniger Ärger später mit Delphi2009.
|
AW: OS auslesen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz