воскресенье, 24 июня 2012 г.

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


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 и нажмите Ок.
Найдите нужную ветвь реестра и удалите ненужный параметр см рисунок ниже) 

Комментариев нет:

Отправить комментарий