Должно было быть просто, я бы подумал. Я хочу заставить компьютер перейти в режим заставки и выйти из него, когда условия, которые я проверяю в D2006), сбудутся. Это не похоже на работу:
if ScreenSaverExitRequested then
begin
SystemParametersInfoResult := SystemParametersInfo(SPI_GETSCREENSAVERRUNNING, 0, @ScreenSaverIsRunning, 0);
if ScreenSaverIsRunning then
begin
SystemParametersInfoResult := SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, UINT(false), nil, SPIF_SENDWININICHANGE);
end ;
end ;
....
if ScreenSaverEntryRequested then
begin
SystemParametersInfoResult := SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1, nil, SPIF_SENDWININICHANGE) ;
end ;
SystemParametersInfoResult возвращает true в каждом случае. Вызовы SystemParametersInfo, похоже, не имеют никакого эффекта. Если я переведу ПК в режим SS с помощью кнопки «Предварительный просмотр» в диалоговом окне «Свойства экрана панели управления», выполнение моего кода ничего не даст.