Конференция "WinAPI" » Запустил раз — включилось, запустил второй — выключилось
 
  • Тыщ © (28.02.09 23:12) [0]
    Есть программа, не создающая никаких окон и работающая в фоновом режиме.
    Нужно сделать так, чтоб при повторном запуске она только завершала свой предыдущий процесс.

    Сделал event'ами, насколько хорош такой способ?

    uses Windows;

    var
      Ev: THandle;
    begin
      Ev := CreateEvent(nil, true, false, 'unique123');
      if GetLastError() = ERROR_ALREADY_EXISTS then
      begin
        SetEvent(Ev);
        Exit;
      end;
      MessageBox(0, 'Started.', '', 0);
      repeat
        //DoSomeTask();
        if WaitForSingleObject(Ev, 50) = 0 then break;
      until false;
      MessageBox(0, 'Stopped.', '', 0);
      CloseHandle(Ev);
    end.

 
Конференция "WinAPI" » Запустил раз — включилось, запустил второй — выключилось
Есть новые Нет новых   [134435   +34][b:0][p:0.001]