Autor Beitrag
TheUnknown
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Mi 19.03.03 07:49 
Hallo,

der folgende Code erzeugt einen String, der für OsVinfo.dwBuildNumber unter Windows 98SE "67766446" und nicht "2222" ergibt... Warum? Alle anderen Tools, auch Windows selbst geben "2222" aus... Bei Win2000 oder XP stimmt der Rückgabewert aber z.B.... Könnt Ihr mir helfen?

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:
function UsedWindowsVersion : String;
var OsVinfo : TOSVERSIONINFO;
begin
  ZeroMemory(@OsVinfo,sizeOf(OsVinfo));
  OsVinfo.dwOSVersionInfoSize := sizeof(TOSVERSIONINFO);

  if GetVersionEx(OsVinfo)
  then case OsVinfo.dwPlatformId of
    VER_PLATFORM_WIN32_WINDOWS: begin
                                  case OsVinfo.dwMinorVersion of
                                    00..09 : begin
                                               case OsVinfo.dwBuildNumber of
                                                 1111 : Result := '95 OEM Service Release 2';
                                                 1214 : Result := '95 OEM Service Release 2.5';
                                               else
                                                 Result := '95';
                                               end;
                                             end;
                                    10..49: begin
                                              if (UpperCase(OsVinfo.szCSDVersion[0]) = 'A') or (UpperCase(OsVinfo.szCSDVersion[1]) = 'A')
                                              then Result := '98 Zweite Ausgabe'
                                              else Result := '98';
                                            end;
                                    50..99: begin
                                              Result := 'Millennium Edition';
                                            end;
                                  else
                                    Result := 'Unbekanntes Betriebssystem';
                                    if SetOSIntegerToo then frm_Main.WinSystem := 0;
                                  end;
                                  Result :=  Result + ' (Version '+IntToStr(OsVinfo.dwMajorVersion)+'.'+IntToStr(OsVinfo.dwMinorVersion)+' Build '+IntToStr(OsVinfo.dwBuildNumber)+OsVinfo.szCSDVersion+')';
                                end;
    VER_PLATFORM_WIN32_NT: begin
                             case OsVinfo.dwMajorVersion of
                               4: begin
                                    Result := 'NT';
                                  end;
                               5: case OsVinfo.dwMinorVersion of
                                    0 : begin
                                          Result := '2000';
                                        end;
                                    1 : begin
                                          Result := 'XP';
                                        end;
                                  else
                                    Result := 'Unbekanntes Betriebssystem';
                                  end;
                             else
                               Result := 'Unbekanntes Betriebssystem';
                             end;
                             if Trim(OsVinfo.szCSDVersion) = ''
                             then Result :=  Result + ' (Version '+IntToStr(OsVinfo.dwMajorVersion)+'.'+IntToStr(OsVinfo.dwMinorVersion)+' Build '+IntToStr(OsVinfo.dwBuildNumber)+')'
                             else Result :=  Result + ' (Version '+IntToStr(OsVinfo.dwMajorVersion)+'.'+IntToStr(OsVinfo.dwMinorVersion)+' Build '+IntToStr(OsVinfo.dwBuildNumber)+', '+OsVinfo.szCSDVersion+')';
                           end;
  else
    Result := 'Unbekanntes Betriebssystem';
  end;
  Result := 'Microsoft Windows '+Result;
end;
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 19.03.03 12:01 
Bitte im PSDK alles lesen:
das PSDK hat folgendes geschrieben:
dwBuildNumber

Windows 95/98/Me: The low-order word contains the build number of the operating. The high-order word contains the major and minor version numbers.
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.