McLion писал(а):В какое событие это ставить?
На таймер.
Если вероятность показа 50% - или показывается или нет, то добавив еще один таймер (в другим периодом времени), вероятность показа увеличивается до 100%. 
 
   И для разнообразия сделал обработчики разными. Сейчас играюсь, ну никак не могу заслонить окно другими. Два таймера похоже рулят.
- Код: Выделить всё
- procedure TfMain.Timer1Timer(Sender: TObject);
 begin
 // 10 ms Interval
 if GetForegroundWindow <> fMain.Handle then SetForeGroundWindow(fMain.Handle);
 end;
 
 procedure TfMain.Timer2Timer(Sender: TObject);
 begin
 // 100 ms Interval
 ShowWindow(fMain.Handle, SW_SHOWNORMAL);
 BringWindowToTop(fMain.Handle);
 fMain.BringToFront;
 end;
з.ы. Если таймер один, то Файрфокс у меня может заслонить окно.