Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 18:11   #1
idel1
Новичок
Джуниор
 
Регистрация: 18.12.2012
Сообщений: 1
По умолчанию реестр

нужно проверить установлена ли программа через реестр если да то показать версию программы если нет вывести куда нибудь что программа не установлена) если можно чтоб она проверяла все ветки в реестре)

Последний раз редактировалось idel1; 18.12.2012 в 18:42.
idel1 вне форума Ответить с цитированием
Старый 18.12.2012, 20:01   #2
777user777
Пользователь
 
Аватар для 777user777
 
Регистрация: 29.11.2010
Сообщений: 38
По умолчанию

Ну, во первых, для начала хоть бы сказал, какие ключи в реестре, что-за программа вообще, где она там версию хранит. Почитайте про такие API, как RegOpenKey, RegEnumKey, RegQueryValue, RegGetValue, и т.д.
777user777 вне форума Ответить с цитированием
Старый 18.12.2012, 22:10   #3
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Код:
uses
  Registry;

function IsApplicationInstall(AName: string; var AVersion: string): Boolean;
const
//  SUninstall = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\';  //для Windows 7 (32 bit)
  SUninstall = 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\';  //для Windows 7 (64 bit)
var
  ValueStr: TStringList;
  I: Integer;
begin     
  Result := False;
  ValueStr := TStringList.Create;
  try
    with TRegistry.Create do
    begin
      RootKey := HKEY_LOCAL_MACHINE;
      //для HKEY_CURRENT_USER ветка 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'
      OpenKeyReadOnly(SUninstall);
      GetKeyNames(ValueStr);
      CloseKey;
      for I := 0 to ValueStr.Count - 1 do
      begin
        OpenKeyReadOnly(SUninstall + ValueStr.Strings[I]);
        if (ReadString('DisplayName') <> '') and
          (ReadString('UninstallString') <> '')
        then
          if Pos(LowerCase(AName), LowerCase(ReadString('DisplayName'))) > 0 then
          begin
            AVersion := ReadString('DisplayVersion');
            Result := True;
            Break;
          end;
        CloseKey;
      end;
      Free;
    end;
  finally
    ValueStr.Free;
  end;
end;
Применение:
Код:
var
  SVersion: string;
begin
  if IsApplicationInstall('Google Chrome', SVersion) then
    ShowMessage(SVersion)
  else
    ShowMessage('<not install>');
Lardes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реестр spydark91 Общие вопросы Delphi 0 12.06.2011 02:27
Реестр xakkkkker Общие вопросы Delphi 3 09.08.2010 15:34
[Сохранение параметров в реестр] Как сохранить параметры цвета в реестр. ZARO Общие вопросы Delphi 3 12.03.2010 21:24
Реестр Bat{CMD}_Men Windows 1 05.10.2009 11:00
Реестр DennerV Общие вопросы Delphi 11 04.06.2009 15:44