Проверка наличия .NET Framework и определение его версии

Советы » Windows » Проверка наличия .NET Framework и определение его версии

{ **** 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

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com