AVZ 5. Руководство пользователя
×
Меню
Индекс

Блокировка повторного запуска скрипта в течение дня

В случае применения AVZ для автоматического сканирования компьютеров в сети может возникнуть задача блокировки повторного запуска одного и того-же скрипта в течении дня. Это полезно, например, для блокировки повторных запусков  AVZ после каждой перезагрузки компьютера или для однократного обновления баз в течении дня. Решение данной операции достаточно простое и сводится в установки в реестре отметки,  содержащей время последнего сканирования.
 
var
  LastScanDate, CurrentDate : string;
begin
  LastScanDate := RegKeyStrParamRead('HKEY_CURRENT_USER', 'Software\AVZ', 'LastScanDate');
  CurrentDate  := DateToStr(Now);
  if LastScanDate = CurrentDate then begin
    AddToLog('Блокировка повторного запуска. Скрипт уже запускался '+LastScanDate);
    ExitAVZ;
    exit;
  end;
  RegKeyStrParamWrite('HKEY_CURRENT_USER', 'Software\AVZ', 'LastScanDate', CurrentDate);
  // продолжение скрипта ....
end.
 
В примере использовались: AddToLog, ExitAVZ, RegKeyStrParamRead, RegKeyStrParamWrite
 
Принцип работы данного скрипта основан на том, что из реестра считывается параметр с именем 'LastScanDate', хранящийся в ключе 'HKEY_CURRENT_USER\Software\AVZ' (естественно, что ключ и имя параметры можно задать любые). Если считанное значение содержит текущую дату, то работа скрипта прерывается и производится выход из AVZ. В противном случае производится запись в реестр отметки с текущей датой.