Entwickler-Ecke
Windows API - WINDOWS Betriebssystem abfragen
M. Raab - Mo 24.02.03 16:38
Titel: WINDOWS Betriebssystem abfragen
Hallo NG,
gibt es unter Delphi eine Möglichkeit abzufragen, ob jemand WIN 95, WIN 98, WIN NT, WIN XP oder WIN 2000 benutzt ?
Gruss und Danke
Markus
Renegade - Mo 24.02.03 16:57
Moin erstmal!
Bei den NT-Systemen müsstest du das in der Registry unter
HKLM\Software\Microsoft\Windows NT\CurrentVersion\ ProductName
finden.
Gruß Renegade
Delete - Mo 24.02.03 17:04
Vergiss das, was Renegade gesagt hat und mach dich schlau über GetVersionEx (API). Ein Teil davon wird dir bereits von Win32Platform, Win32MajorVersion und Win32MinorVersion (SysUtils) zur Verfügung gestellt.
Im PSDK gibt es eine Auflistung, welches OS welche Versionsnummer hat, so dass du ganz genau ermitteln kannst, was läuft ... im wahrsten Sinne des Wortes. Meines Wissens nach müsste es eine solche Auflistung aber auch im EDH geben.
Delete - Mo 24.02.03 19:05
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103:
| function GetOperatingSystem : String; var osVerInfo : TOSVersionInfo; majorVer, minorVer : Integer; begin result := 'unbekannt'; { set operating system type flag } osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if GetVersionEx(osVerInfo) then begin majorVer := osVerInfo.dwMajorVersion; minorVer := osVerInfo.dwMinorVersion; case osVerInfo.dwPlatformId of VER_PLATFORM_WIN32_NT : { Windows NT/2000 } begin if majorVer <= 4 then result := 'Windows NT' else if (majorVer = 5) AND (minorVer= 0) then result := 'Windows 2000' else if (majorVer = 5) AND (minorVer = 1) then result := 'Windows XP' else result := 'unbekannt'; result := result + ' (' +osverInfo.szCSDVersion+')';; end; VER_PLATFORM_WIN32_WINDOWS : { Windows 9x/ME } begin if (majorVer = 4) AND (minorVer = 0) then result := 'Windows 95' else if (majorVer = 4) AND (minorVer = 10) then begin if osVerInfo.szCSDVersion[1] = 'A' then result := 'Windows 98 SE' else result := 'Windows 98'; end else if (majorVer = 4) AND (minorVer = 90) then result := 'Windows Millennium' else result := 'unbekannt'; end; else result := 'unbekannt'; end; end else result := 'unbekannt'; end;
function GetVersionNumber: String; var osVerInfo : TOSVersionInfo; MajorVer, MinorVer : Integer; begin result := 'unbekannt'; { set operating system type flag } osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if GetVersionEx(osVerInfo) then begin majorVer := osVerInfo.dwMajorVersion; minorVer := osVerInfo.dwMinorVersion; case osVerInfo.dwPlatformId of VER_PLATFORM_WIN32_NT : { Windows NT/2000 } begin if majorVer <= 4 then result := IntToStr(OsVerInfo.dwMajorVersion)+'.'+IntToStr(OsVerInfo.dwMinorVersion)+ '.'+IntToStr(OsVerInfo.dwBuildNumber) else if (majorVer = 5) AND (minorVer= 0) then result := IntToStr(OsVerInfo.dwMajorVersion)+'.'+IntToStr(OsVerInfo.dwMinorVersion)+ '.'+IntToStr(OsVerInfo.dwBuildNumber) else if (majorVer = 5) AND (minorVer = 1) then result := IntToStr(OsVerInfo.dwMajorVersion)+'.'+IntToStr(OsVerInfo.dwMinorVersion)+ '.'+IntToStr(OsVerInfo.dwBuildNumber) else result := 'unbekannt'; end; VER_PLATFORM_WIN32_WINDOWS : { Windows 9x/ME } begin if (majorVer = 4) AND (minorVer = 0) then result := IntToStr(OsVerInfo.dwMajorVersion)+'.'+IntToStr(OsVerInfo.dwMinorVersion)+ '.'+IntToStr(OsVerInfo.dwBuildNumber) else if (majorVer = 4) AND (minorVer = 10) then begin if osVerInfo.szCSDVersion[1] = 'A' then result := IntToStr(OsVerInfo.dwMajorVersion)+'.'+IntToStr(OsVerInfo.dwMinorVersion)+ '.'+IntToStr(OsVerInfo.dwBuildNumber) else result := IntToStr(OsVerInfo.dwMajorVersion)+'.'+IntToStr(OsVerInfo.dwMinorVersion)+ '.'+IntToStr(OsVerInfo.dwBuildNumber) end else if (majorVer = 4) AND (minorVer = 90) then result := IntToStr(OsVerInfo.dwMajorVersion)+'.'+IntToStr(OsVerInfo.dwMinorVersion)+ '.'+IntToStr(OsVerInfo.dwBuildNumber) else result := 'unbekannt'; end; else result := 'unbekannt'; end; end else result := 'unbekannt'; end; |
M. Raab - Do 27.02.03 13:06
Hallo Lucki,
Danke - hat mir sehr geholfen.
Gruss
Markus
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!