FAQ - Как определить, запущен ли хранитель экрана
Это довольно интересная задача, особенно важная для разообразных программ показа презентаций ..., копорые работают долгое время без участия человека - обычно через N минут поверх них вылезает хранитель экрана и пользователи любуются не презентацией, а этим безобразием. Решение :
FUNCTION SCREENSAVERRUNNING:BOOLEAN; VAR WND : HWND; CLASSNAME : ARRAY[0..200] OF CHAR; BEGIN WND := GETFOREGROUNDWINDOW; // Определили активное окно GETCLASSNAME(WND, CLASSNAME, 200); // Определили имя его класса RESULT := (CLASSNAME = 'WINDOWSSCREENSAVERCLASS'); END;