Einzelnen Beitrag anzeigen

08115

Registriert seit: 7. Nov 2013
4 Beiträge
 
#1

Windows 8.1 - wie BuildNumber 9600 angezeigt bekommen?

  Alt 7. Nov 2013, 17:25
Hallo DP,

wie kriegt man ein/sein/mein Programm dazu, die aktuelle Version von Windows auszugeben?

Dafür gibt es viele Units im Internet und viele Units in der DP.

Aber selbstverstaendlich *keine* Unit, die das kann, was ich will!

Daher Selbst-ist-der-Heimwerker:

Delphi-Quellcode:
unit UnitZeigeWindowsVersion;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Registry,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function GetWindowsVersion(ShortInfo: Boolean): string;
var
  VerInfo: TOsversionInfo;
  PlatformId, VersionNumber: string;
  BuildNumber: string; // mein Pfusch!
  Reg: TRegistry;
begin
  VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
  GetVersionEx(VerInfo);
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  case VerInfo.dwPlatformId of
    VER_PLATFORM_WIN32s:
      begin
        PlatformId := 'Windows 3.1';
      end;
    VER_PLATFORM_WIN32_WINDOWS:
      begin
        Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion', False);
        PlatformId := Reg.ReadString('ProductName');
        VersionNumber := Reg.ReadString('VersionNumber');
        BuildNumber := Reg.ReadString('CurrentBuildNumber'); // mein Pfusch!
      end;
    VER_PLATFORM_WIN32_NT:
      begin
        Reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion', False);
        PlatformId := Reg.ReadString('ProductName');
        VersionNumber := Reg.ReadString('CurrentVersion');
        BuildNumber := Reg.ReadString('CurrentBuildNumber'); // mein Pfusch!
      end;
  end;
  Reg.Free;
  if shortinfo then
    Result := '(' + VersionNumber + '/' + BuildNumber + ')else
    Result := PlatformId + ' (Version ' + VersionNumber + '/Build ' + BuildNumber + ')';
end;


procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
  s := GetWindowsVersion(false); // Kurzinfo
  MessageBox(Handle, PChar(s), 'Infokram (false) unter D5', mb_Ok or mb_IconInformation or mb_DefButton1);
  s := GetWindowsVersion(true); // Langinfo
  MessageBox(Handle, PChar(s), 'Infokram (true) unter D5', mb_Ok or mb_IconInformation or mb_DefButton1);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  Button1Click(self);
  PostQuitMessage(666); // Teufelszeug!
end;

end.
Auf dem Formular ist nur ein Button.

Entwickelt/getestet mit Delphi5/WinXP, Windows 8 und Windows 8.1.

Dankbare Gruesse von einem Mitleser!

Geändert von 08115 ( 7. Nov 2013 um 18:24 Uhr)
  Mit Zitat antworten Zitat