Hej "PL"
> Er der en eller anden, som kan fortælle, hvordan man kan aflæse om windows er f.eks. win98 eller
> NT4.0 man arbejder på
function OSString(FullId: Boolean): string;
var
BinStreng: string;
BuildStr: string;
MinorStr: string;
MajorStr: string;
KernelVersionHi: DWord;
begin
BinStreng := '';
KernelVersionHi := 0;
if FullId then
begin
{Kommentar - patch eller servicepack}
Insert(Win32CSDVersion, BinStreng, 1);
if BinStreng <> '' then Insert(', ', BinStreng, 1);
Insert(').', BinStreng, length(BinStreng) + 1);
{BuildVersion}
try
BuildStr := IntToStr(Win32BuildNumber);
except on EConvertError do BuildStr := '';
end;
Insert(BuildStr, BinStreng, 1);
if BuildStr <> '' then Insert('.', BinStreng, 1);
{MinorVersion}
try
MinorStr := IntToStr(Win32MinorVersion);
except on EConvertError do MinorStr := '';
end;
Insert(MinorStr, BinStreng, 1);
if MinorStr <> '' then Insert('.', BinStreng, 1);
{MinorVersion}
try
MajorStr := IntToStr(Win32MajorVersion);
except on EConvertError do MajorStr := '';
end;
Insert(MajorStr, BinStreng, 1);
Insert(' - (', BinStreng, 1);
end else BinStreng := '.';
{Tekst}
if Win32Platform <> VER_PLATFORM_WIN32_NT then
begin
case Win32MinorVersion of
0..9: if Trim(Win32CSDVersion) = 'B' then insert(' 95 OSR2',
BinStreng, 1)
else if Trim(Win32CSDVersion) = 'C' then insert(' 95 OSR2.5',
BinStreng, 1)
else insert(' 95', BinStreng, 1);
10..89:
// På Windows ME kan Win32MinorVersion returnere 10 (Identisk
med Windows 98
// under visse omstændigheder. Ved at checke
// kernel versionen kan man få det rigtige svar.
if KernelVersionHi = $0004005A then insert(' ME', BinStreng, 1)
// 4.90.x.x
else if Trim(Win32CSDVersion) = 'A' then insert(' 98 SE',
BinStreng, 1)
else insert(' 98', BinStreng, 1);
90: insert(' ME', BinStreng, 1);
end;
end else
begin
case Win32MajorVersion of
3: insert(' NT 3', BinStreng, 1);
4: insert(' NT 4', BinStreng, 1);
5: begin
case Win32MinorVersion of
0: insert(' 2000', BinStreng, 1);
1: insert(' XP', BinStreng, 1);
end;
end;
else insert(' XP', BinStreng, 1);
end;
end;
insert('Microsoft Windows', BinStreng, 1);
Result := BinStreng;
end;
-Kurt
|