Zablokowanie uruchamiania wygaszacza podczas działania aplikacji

Aby zakazać systemowi uruchamiania wygaszacza ekranu podczas działania aplikacji należy w pliku nagłówkowym formularza w sekcji private umieścić deklarację funkcji przechwytującej komunikaty:

Unit1.h

private:
   void __fastcall AppMessage(tagMSG& Msg, bool &Handled);

Następnie w kodzie źródłowym formularza umieszczamy definicję tej funkcji, która sprawdza, czy wysyłany jest komunikat uruchomienia wygaszacza ekranu, a jeśli tak to "oszukuje" ona system powiadamiając go, że uruchomiono wygaszacz:

Unit1.cpp

void __fastcall TForm1::AppMessage(tagMSG& Msg, bool &Handled)
{
   if ((Msg.message == WM_SYSCOMMAND) & (Msg.wParam == SC_SCREENSAVE))
      Handled = true;
}

Na koniec w zdarzeniu OnCreate formularza przypisujemy naszą funkcję obsługującą komunikaty do standardowej funkcji obsługującej komunikaty OnMessage obiektu TApplication:

Unit1.cpp

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   Application->OnMessage = AppMessage;
}