![]() |
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 ![]() ![]() ![]() 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
![]() 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 06:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz