скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Регистры - доступ и использование вместо 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 © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook