Autor Beitrag
M. Raab
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 334
Erhaltene Danke: 1

WIN 7
Delphi XE
BeitragVerfasst: Mo 24.02.03 16:38 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 358

Win XP Pro, Win 7 Beta
BDS 2006
BeitragVerfasst: 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

_________________
Sokrates (468 v.Chr. - 399 v.Chr.)
"Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen."
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 24.02.03 19:05 
ausblenden volle Höhe 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 334
Erhaltene Danke: 1

WIN 7
Delphi XE
BeitragVerfasst: Do 27.02.03 13:06 
Hallo Lucki,


Danke - hat mir sehr geholfen.


Gruss

Markus