|
![]() |
|
Registriert seit: 29. Okt 2004 Ort: Halle 462 Beiträge |
#1
entweder im kleinem stil
Code:
oder etwas grösser
function IsNT : boolean;
var VersionInfo : TOSVersionInfo; begin VersionInfo.dwOSVersionInfoSize:=SizeOf(VersionInfo); GetVersionEx(VersionInfo); Result := (VersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT); end; procedure TForm1.Button1Click(Sender: TObject); begin if IsNT then statictext1.caption := 'Ahh, Windows NT !!!' else statictext1.caption := 'Oh Gott! Nur Windows 95 ...'; end;
Code:
oder ganz professional:
function GetWindowsVersion : string;
var winInfo : TOSVersionInfo; begin result := ''; winInfo.dwOSVersionInfoSize := sizeof (OSVERSIONINFO); GetVersionEx(winInfo); if winInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin if (winInfo.dwMajorVersion <= 4) then begin result := 'Windows NT ' + inttostr(winInfo.dwMajorVersion); end; if ((winInfo.dwMajorVersion = 5) and (winInfo.dwMinorVersion = 0)) then result := 'Windows 2000' else if ((winInfo.dwMajorVersion = 5 ) and (winInfo.dwMinorVersion > 1)) then result := 'Windows XP'; end; if winInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then begin if ((winInfo.dwMajorVersion > 4) or ((winInfo.dwMajorVersion = 4) and (winInfo.dwMinorVersion > 0))) then begin if (winInfo.dwMinorVersion = 90) then result := 'Windows ME' else result := 'Windows 98'; end else result := 'Windows 95'; end; if result = '' then result := 'Win32s'; end; procedure TForm1.Button1Click(Sender: TObject); begin label1.Caption := GetWindowsVersion; end;
Code:
gruß
{$IFDEF CONDITIONALEXPRESSIONS}
{$IF Defined(TOSVersionInfoEx)} {$DEFINE TOSVERSIONINFOEX_DEFINED} {$IFEND} {$ENDIF} {$IFNDEF TOSVERSIONINFOEX_DEFINED} type POSVersionInfoEx = ^TOSVersionInfoEx; TOSVersionInfoEx = packed record dwOSVersionInfoSize: DWORD; dwMajorVersion : DWORD; dwMinorVersion : DWORD; dwBuildNumber : DWORD; dwPlatformId : DWORD; szCSDVersion : array [0..127] of AnsiChar; wServicePackMajor : Word; wServicePackMinor : Word; wSuiteMask : Word; wProductType : Byte; wReserved : Byte; end; const VER_SERVER_NT = $80000000; {$EXTERNALSYM VER_SERVER_NT} VER_WORKSTATION_NT = $40000000; {$EXTERNALSYM VER_WORKSTATION_NT} VER_SUITE_SMALLBUSINESS = $00000001; {$EXTERNALSYM VER_SUITE_SMALLBUSINESS} VER_SUITE_ENTERPRISE = $00000002; {$EXTERNALSYM VER_SUITE_ENTERPRISE} VER_SUITE_BACKOFFICE = $00000004; {$EXTERNALSYM VER_SUITE_BACKOFFICE} VER_SUITE_COMMUNICATIONS = $00000008; {$EXTERNALSYM VER_SUITE_COMMUNICATIONS} VER_SUITE_TERMINAL = $00000010; {$EXTERNALSYM VER_SUITE_TERMINAL} VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020; {$EXTERNALSYM VER_SUITE_SMALLBUSINESS_RESTRICTED} VER_SUITE_EMBEDDEDNT = $00000040; {$EXTERNALSYM VER_SUITE_EMBEDDEDNT} VER_SUITE_DATACENTER = $00000080; {$EXTERNALSYM VER_SUITE_DATACENTER} VER_SUITE_SINGLEUSERTS = $00000100; {$EXTERNALSYM VER_SUITE_SINGLEUSERTS} VER_SUITE_PERSONAL = $00000200; {$EXTERNALSYM VER_SUITE_PERSONAL} VER_SUITE_BLADE = $00000400; {$EXTERNALSYM VER_SUITE_BLADE} VER_SUITE_EMBEDDED_RESTRICTED = $00000800; {$EXTERNALSYM VER_SUITE_EMBEDDED_RESTRICTED} VER_SUITE_SECURITY_APPLIANCE = $00001000; {$EXTERNALSYM VER_SUITE_SECURITY_APPLIANCE} const VER_NT_WORKSTATION = $0000001; {$EXTERNALSYM VER_NT_WORKSTATION} VER_NT_DOMAIN_CONTROLLER = $0000002; {$EXTERNALSYM VER_NT_DOMAIN_CONTROLLER} VER_NT_SERVER = $0000003; {$EXTERNALSYM VER_NT_SERVER} {$ENDIF} // TOSVERSIONINFOEX_DEFINED function GetOSVersionInfo(var Info: TOSVersionInfoEx): Boolean; begin FillChar(Info, SizeOf(TOSVersionInfoEx), 0); Info.dwOSVersionInfoSize := SizeOf(TOSVersionInfoEx); Result := GetVersionEx(TOSVersionInfo(Addr(Info)^)); if (not Result) then begin FillChar(Info, SizeOf(TOSVersionInfoEx), 0); Info.dwOSVersionInfoSize := SizeOf(TOSVersionInfoEx); Result := GetVersionEx(TOSVersionInfo(Addr(Info)^)); if (not Result) then Info.dwOSVersionInfoSize := 0; end; end; function GetOSVersionText: string; var Info: TOSVersionInfoEx; Key: HKEY; begin Result := ''; if (not GetOSVersionInfo(Info)) then Exit; case Info.dwPlatformId of { Win32s } VER_PLATFORM_WIN32s: Result := 'Microsoft Win32s'; { Windows 9x } VER_PLATFORM_WIN32_WINDOWS: if (Info.dwMajorVersion = 4) and (Info.dwMinorVersion = 0) then begin Result := 'Microsoft Windows 95'; if (Info.szCSDVersion[1] in ['B', 'C']) then Result := Result +' OSR2'; end else if (Info.dwMajorVersion = 4) and (Info.dwMinorVersion = 10) then begin Result := 'Microsoft Windows 98'; if (Info.szCSDVersion[1] = 'A') then Result := Result + ' SE'; end else if (Info.dwMajorVersion = 4) and (Info.dwMinorVersion = 90) then Result := 'Microsoft Windows Millennium Edition'; { Windows NT } VER_PLATFORM_WIN32_NT: begin { Version } if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 2) then Result := 'Microsoft Windows Server 2003' else if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 1) then Result := 'Microsoft Windows XP' else if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 0) then Result := 'Microsoft Windows 2000' else Result := 'Microsoft Windows NT'; { Extended } if (Info.dwOSVersionInfoSize >= SizeOf(TOSVersionInfoEx)) then begin { ProductType } if (Info.wProductType = VER_NT_WORKSTATION) then begin if (Info.dwMajorVersion = 4) then Result := Result + #10'Workstation 4.0' else if(Info.wSuiteMask and VER_SUITE_PERSONAL <> 0) then Result := Result + #10'Home Edition' else Result := Result + #10'Professional'; end else if (Info.wProductType = VER_NT_SERVER) then begin if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 2) then begin if (Info.wSuiteMask and VER_SUITE_DATACENTER <> 0) then Result := Result + #10'Datacenter Edition' else if (Info.wSuiteMask and VER_SUITE_ENTERPRISE <> 0) then Result := Result + #10'Enterprise Edition' else if (Info.wSuiteMask = VER_SUITE_BLADE) then Result := Result + #10'Web Edition' else Result := Result + #10'Standard Edition'; end else if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 0) then begin if (Info.wSuiteMask and VER_SUITE_DATACENTER <> 0) then Result := Result + #10'Datacenter Server' else if (Info.wSuiteMask and VER_SUITE_ENTERPRISE <> 0) then Result := Result + #10'Advanced Server' else Result := Result + #10'Server'; end else begin Result := Result + #10'Server ' + IntToStr(Info.dwMajorVersion) + '.' + IntToStr(Info.dwMinorVersion); if (Info.wSuiteMask and VER_SUITE_ENTERPRISE <> 0) then Result := Result + ', Enterprise Edition'; end; end; end; { CSDVersion } if (Info.dwMajorVersion = 4) and (StrIComp(Info.szCSDVersion, 'Service Pack 6') = 0) and (RegOpenKeyEx(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\Q246009', 0, KEY_QUERY_VALUE, Key) = ERROR_SUCCESS) then begin Result := Result + #10'Service Pack 6a'; RegCloseKey(Key); end else Result := Result + #10 + StrPas(Info.szCSDVersion); Result := Result + #10'(Build ' + IntToStr(Info.dwBuildNumber and $FFFF) + ')'; end; end; end; //////////////////////////////////////////////////////////////////////////////// procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(GetOSVersionText); end;
Harry
|
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |