Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Отключить экранную заставку   Найти похожие ветки 

 
Walker ©   (2002-11-27 07:00) [0]

Мне нужно на время запретить вызов экранной заставки (моя программа работает в полноэкранном режиме)

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, nil, 0); - не помогает

Как быть?


 
BoxTer ©   (2002-11-27 07:11) [1]

// Включение режима
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
// Выключение режима
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
Кстати, SystemParametersInfo имеет еще кучу полезных ключей SPI_****, подробности см. в win32.hlp



 
Walker ©   (2002-11-27 07:33) [2]

BoxTer СЛЕПОЙ ЧТО ЛИ?????

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, nil, 0); - НЕ ПОМОГАЕТ


P.S. у меня тоже есть такая статья...


 
SottNick ©   (2002-11-27 07:58) [3]

2 Walker
1. SPI_SCREENSAVERRUNNING Windows 95 only: Used internally; applications should not use this flag.

2.
Dummy:=0;
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);
или
SystemParametersInfo( SPI_SCREENSAVERRUNNING, Word(True), @Dummy, 0);
фиг его знает. я не разбирался
3. HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive


 
Внук ©   (2002-11-27 09:12) [4]

>>SPI_SCREENSAVERRUNNING Windows 95 only: Used internally; applications should not use this flag.
Верно, и не надо его использовать, есть другой метод:

var Flag:Bool;
begin
Flag:=false;
SystemParametersInfo(SPI_GETSCREENSAVERRUNNING,0,@Flag,0);
if Flag then WriteLn(ResFile,"ScreenSaver is active")
...
end;

Но это подойдет, если нужно определить, запущена уже заставка, или нет.

А чтобы запретить запуск, нужно посмотреть ветку HKEY_CURRENT_USER\Control Panel\Desktop, как правильно сказали выше, только не параметр ScreenSaveActive (он, например, у меня равен 1, а заставка вообще отключена). Посмотрите, что меняется в этой ветке при назначении и снятии заставки :))

Кроме того, может быть, в данном случае достаточно просто поставить большое время ожидания там же. И позаботиться о том, чтобы изменения в реестре вступили в силу сразу же.


 
Walker ©   (2002-11-27 12:36) [5]

дело в том, что никакая программа не застрахована от фатальных сбоев, и менять что-то в реестре, не относящееся к моей программе, у меня нет желания, но если по другому нельзя (например заставить виду поверить в то, что заставка уже запущена, как это делают некоторые проигрыватели видео)... но я верю что можно... :)


А нсчёт Windows 95 Only поясню, в этих хелпах, кот. поставляются с Delphi описываются всего две версии Windows - 95 и NT. И там где написано Win95 Only надо читатать так: "не для технологии NT" (т.е. Win 95 Only будет работать и под Win9x).


 
Walker ©   (2002-11-27 13:01) [6]

Спасибо всем... я тут немного помучался, вот что у меня получилось:

Предлагаю свой Unit для решения проблемы :)

unit ScreenSaveAtivater;

interface

procedure EnableScreenSave;
procedure DisableScreenSave;


implementation
uses
Windows;

var
ScreenSaverEnabled: Boolean;
ScreenSaveTimeOut: Integer;

procedure DisableScreenSaver;
begin
if ScreenSaverEnabled then
begin
SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, 0, @ScreenSaveTimeOut, 0);
SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, 0, nil, 0);
ScreenSaverEnabled := False;
end;
end;

procedure EnableScreenSaver;
begin
if not ScreenSaverEnabled then
begin
SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, ScreenSaveTimeOut, nil, 0);
ScreenSaverEnabled := True;
end;
end;


initialization
SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, 0, @ScreenSaveTimeOut, 0);
ScreenSaverEnabled := True;
finalization
EnableScreenSaver;
end.



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
3-15454
PONTIY
2003-01-20 12:14
2003.02.06
Проблема с DBComboBox


8-15762
Ваня
2002-10-23 09:54
2003.02.06
Шрифт, антиалиасинг, и т.п.


14-15877
Zelius
2003-01-17 18:57
2003.02.06
ЧТо это за файл dent.slip и за что он отвечает?


14-15935
Вадим
2003-01-21 05:57
2003.02.06
Кто-нить знает, где народ такую траву берет ?


1-15537
smok_er
2003-01-28 11:54
2003.02.06
MDI Activate & CloseForm