Сначала мы проверяем, установлен ли Screen Saver, если нет - возвращаемся с отрицательным ответом, в противном случае - запускаем его и возвращаем true.
function RunScreenSaver: bool;
var
b: boolean;
begin
result := false;
if SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, @b, 0) <> true then
exit;
ifnot b then
exit;
PostMessage(GetDesktopWindow, WM_SYSCOMMAND, SC_SCREENSAVE, 0);
result := true;
end;
Here is the translation of the text into Russian:
Ностальгия! Это старый код Delphi для запуска текущего экранного saver.
Вот разбивка того, что код делает:
Функция RunScreenSaver не принимает параметров и возвращает булевое значение, указывающее, успешно ли был запущен экранный saver или нет.
Изначально функция устанавливает свой возвращаемый результат в false.
Она использует функцию Windows API SystemParametersInfo для проверки, включен ли экранный saver (SPI_ GETSCREENSAVEACTIVE). Если он не включен, функция выходит с возвращаемым значением false.
Если экранный saver включен, функция проверяет значение b, которое будет равно true, если экранный saver активен, и false в противном случае.
Если экранный saver активен (not b), функция отправляет Windows-сообщение (WM_ SYSCOMMAND) окну рабочего стола с кодом команды SC_SCREENSAVE. Это запускает экранный saver.
Наконец, функция устанавливает свой возвращаемый результат в true, указывая, что экранный saver успешно был запущен.
Чтобы запустить этот код в Delphi:
Создайте новый проект VCL Forms в Delphi.
Добавьте кнопку на вашем формате.
Перекликните кнопку, чтобы создать обработчик события для события Click.
Вставьте код в обработчик события, заменив любое существующее код.
Скомпилируйте и запустите приложение.
Когда вы нажмете на кнопку, текущий экранный saver должен быть запущен.
В статье описывается функция RunScreenSaver, которая позволяет запустить текущий скринсейвер на компьютере.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.