Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 24.09.2009, 09:35   #1
Бутаков_Сергей
Форумчанин
 
Регистрация: 27.05.2009
Адрес: г. Иркутск
Сообщений: 55
Репутация: 10
По умолчанию Как узнать установлен ли на компе Framework

Привет всем !!! У меня такой вопрос: как определить установлен ли на компьютере Microsoft.NET FrameWork?
Бутаков_Сергей вне форума   Ответить с цитированием
Старый 24.09.2009, 11:13   #2
Kotofff
Профессионал
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Адрес: Россия. Кубань.
Сообщений: 1,916
Репутация: 1296
По умолчанию

Цитата:
Зависимости: Registry, SysUtils
Автор: Dimka Maslov, ICQ:148442121, Санкт-Петербург
Код:

function DotNetVersion: string;
var
  R: TRegistry;
  L: TStringList;
  S: string;
  i, MaxIndex, N, Code: Integer;
  V, MaxVersion: Double;
const
  RegKey = 'Software\Microsoft\.NETFramework\Policy';
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;

Не проверял !!!
__________________
Кому iPhone и Swarovski, кому Афон и Саровский...

Последний раз редактировалось Kotofff; 24.09.2009 в 11:17.
Kotofff вне форума   Ответить с цитированием
Старый 24.09.2009, 14:00   #3
alexBlack
Новичок
Профессионал
 
Регистрация: 12.10.2007
Адрес: -
Сообщений: 1,204
Репутация: 920
По умолчанию

Еще вариант:

Код:

uses Windows;

function FrameworkVersion : String;
type
   TGetCORVersion = function (pbuffer : Pointer;
                    cchBuffer : DWORD;
                    var dwlength : Integer):HRESULT; stdcall;

var H:THandle;
    GetCORVersion : TGetCORVersion;
    buffer : array [byte] of WideChar;
    R:HResult;
    Size:Integer;
begin
   result := '';
   H := LoadLibrary('MSCorEE.dll');
   if H <= 0 then exit;
   try
      GetCORVersion := GetProcAddress(H, 'GetCORVersion');
      if @GetCORVersion = nil then exit;

      Size := 0;
      R := GetCORVersion(@buffer, sizeof(buffer) div 2, Size);
      if (R = S_OK) and (size > 0) then result := buffer;
   finally
      FreeLibrary(H);
   end;
end;

begin
   writeln(FrameworkVersion);
   readln;

alexBlack вне форума   Ответить с цитированием
Старый 24.09.2009, 18:36   #4
Бутаков_Сергей
Форумчанин
 
Регистрация: 27.05.2009
Адрес: г. Иркутск
Сообщений: 55
Репутация: 10
По умолчанию

Всем огромное спасибо Очень помогли
Бутаков_Сергей вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как средствами Delphi изменить IP на компе? Ky3Heu, Работа с сетью в Delphi 1 10.08.2009 19:57
как програмно разграничить 2 мышки на одном компе COMPositor Общие вопросы Delphi 3 19.04.2009 16:36
как получить список запущенных процессов на компе One.Love Win Api 10 17.03.2009 02:36
хотелось бы больше узнать о компе и программировании batist65 Свободное общение 7 19.02.2009 01:47
как посмотреть какая материнка стоит в компе ronich Помощь студентам 3 22.12.2007 16:19


22:09.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru