На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / ОС и железо / Регистры - доступ и использование вместо WIN.INI Сделать домашней страницей Добавить в избранное Написать писмо

Регистры - доступ и использование вместо WIN.INI


Плачет молодая забеременевшая программистка, слезами заливается. Над ней висит мать:
- Да как ты могла? Да как ты посмела? Где твои глаза были?
Программистка:
- А он обещал стать зарегистрированным пользователем...


uses
  Registry, Windows;

var
  TheReg: TRegistry;
  KeyName: string;
  ValueStr: string;

begin
  TheReg := TRegistry.Create;
  try
    TheReg.RootKey := HKEY_CURRENT_USER;
    KeyName := 'Software\MyTinyApp\StartUp';
    if TheReg.OpenKey(KeyName, False) then
    begin
      ValueStr := TheReg.ReadString('WorkPath');
      TheReg.CloseKey;
    end;
  finally
    TheReg.Free;
  end;
end;

Также имейте в виду, что корректное место для сохранения пути к вашему приложению (EXE-файлу) в регистрах Win95 находится по адресу:


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AppPaths\MYAPP.EXE 

Сохраните полный путь к вашему приложению как значение по умолчанию в этом ключе.

Regstr.pas определяет константу для этого пути (...\App Paths\) как REGSTR_PATH_APPPATHS.

Сохранение полного пути к вашему приложению (EXE-файлу) позволит пользователю запустить его, просто набрав MYAPP (зарегистрированное имя) в стартовом меню Start|Run. Вот пример, регистрирующий путь к вашему приложению:


uses
  Registry, Regstr;

var
  TheReg: TRegistry;
  KeyName: string;

begin
  TheReg := TRegistry.Create;
  try
    {Проверяем установку AppPath и при необходимости корректируем}
    TheReg.RootKey := HKEY_LOCAL_MACHINE;
    KeyName := REGSTR_PATH_APPPATHS + ExtractFileName(Application.ExeName);
    if TheReg.OpenKey(KeyName, True) then
    begin
      if CompareText(TheReg.ReadString(''), Application.ExeName) <> 0 then
        TheReg.WriteString('', Application.ExeName);
      TheReg.CloseKey;
    end;
  finally
    TheReg.Free;
  end;
end;


Copyright ©   "DELPHI WORLD"   E-mail:   delphiworld@mail.ru  http://www.delphiworld.narod.ru
Источник получения информации: http://www.delphiworld.narod.ru
Hosted by uCoz