Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Проверка наличия .NET Framework и определение его версии
Функция возвращает номер последней установленной версии .NET Framework
на компьютере, или пустую строку, если платформа .NET не установлена,
либо установлена криво.
Зависимости: Registry, SysUtils
Автор: Dimka Maslov, mainbox@endimus.com, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 19 января 2004 г.
***************************************************** }
function DotNetVersion: string
;
var
R: TRegistry;
L: TStringList;
S: string
;
i, MaxIndex, N, Code: Integer;
V, MaxVersion: Double;
const
RegKey = 'SoftwareMicrosoft.NETFrameworkPolicy';
begin
Result := '';
R := TRegistry.Create;
try
R.RootKey := HKEY_LOCAL_MACHINE;
if
R.KeyExists(RegKey) then
begin
R.OpenKeyReadOnly(RegKey);
L := TStringList.Create;
try
R.GetKeyNames(L);
MaxVersion := -1.0;
MaxIndex := -1;
for
i := 0 to
L.Count - 1 do
begin
S := L[i];
if
UpCase(S[1]) = 'V' then
begin
Delete(S, 1, 1);
Val(S, V, Code);
if
(Code = 0) and
(V > MaxVersion) then
begin
MaxVersion := V;
MaxIndex := i;
end
;
end
;
end
;
if
MaxIndex <> -1 then
begin
S := L[MaxIndex];
R.CloseKey;
R.OpenKeyReadOnly(RegKey + '' + S);
R.GetValueNames(L);
MaxIndex := -1;
for
i := 0 to
L.Count - 1 do
begin
Val(L[i], N, Code);
if
(Code = 0) and
(N > MaxIndex) then
MaxIndex := N;
end
;
Result := S;
Delete(Result, 1, 1);
if
MaxIndex <> -1 then
Result := Result + '.' + IntToStr(MaxIndex);
end
;
finally
L.Free;
end
;
end
;
finally
R.Free;
end
;
end
;