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