Lazarus - работа с реестром Windows (пишем утилиту помещающую указанную программу в автозагрузку)

Создадим в Lazarus консольное приложение и скопируем следующий код:

 

program up;
 
{$mode objfpc}{$H+}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils, CustApp,
registry;   //используем модуль работы с реестром
 
type
 
  { upp }
 
  upp = class(TCustomApplication)
  protected
    procedure DoRun; override;
  public
    constructor Create(TheOwner: TComponent); override;
  end;
 
{ upp }
 
procedure upp.DoRun;
var
  ErrorMsg: String;
    FIniFile:TRegIniFile; //переменная для обращения к реестру
begin
 
  if ParamCount=2 then begin     //если число параметров запуска программы равно 2
   FIniFile := TRegIniFile.Create('Software');
   FIniFile.OpenKey('Microsoft',true);
   FIniFile.OpenKey('Windows',true);
   FIniFile.OpenKey('CurrentVersion',true);
   FIniFile.WriteString('Run', ParamStr(1), ParamStr(2));  //В раздел реестра HKCU/Software/Microsoft/Windows/CurrentVersion/Run помещаем запись
   //где ParamStr(1) - имя параметра , а 2 - полный путь к программе, помещаемой в автозапуск
   end;
  // stop program loop
  Terminate;
end;
 
constructor upp.Create(TheOwner: TComponent);
begin
  inherited Create(TheOwner);
end;
 
var
  Application: upp;
 
{$R *.res}
 
begin
  Application:=upp.Create(nil);
  Application.Run;
  Application.Free;
end.
 
 
Пример использования:
 
up CheckEmail c:\CheckEmail.bat
 
где CheckEmail.bat :
rr c:\get.bat 180000
 
где get.bat:
ymail get pop3host pop3.bk.ru login y.x.x.y password yxxy852456 c:\email
 
В данном примере происходит проверка почтового ящика каждые 3 минуты и сохранение вложений в папку c:\email
 
(Чтобы удалить программу из автозагрузки нажмине Пуск - Выполнить - наберите regedit и нажмите Ок.
Найдите нужную ветвь реестра и удалите ненужный параметр см рисунок ниже) 
 
 
ВложениеРазмер
up.zip258.12 КБ