Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заставка


DimOn2 ©   (2004-08-29 14:22:00) 

Как сделать чтобы при простое приложение игнорировало экранную заставку Windows?


DimOn2   (2004-08-30 16:33:00) [1]


> GuAV ©   (30.08.04 15:04) [7]


Работает! Огромнейшее спасибо


GuAV   (2004-08-30 15:04:00) [2]

Попробуй лучше такое:
type
 TForm1 = class(TForm)
 private
   { Private declarations }
   procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
 with Message do
  if CmdType = SC_SCREENSAVE then
    Result:=0
  else
    inherited;
end;


GuAV   (2004-08-30 14:52:00) [3]

Мда, Прагма тоже где-то так переводит:

Однажды экранная заставка избрана, мониторы Windows keystrokes и движения мыши а затем запускает экранную заставку после периода инертности. Однако, Windows не запускает экранной заставки, если любое из следующих условий существует:

Активное приложение - это ни основанного в Windows приложения.
Компьютерное учебное (CBT) окно присутствует.
Активное приложение получило сообщение WM_SYSCOMMAND с параметром wParam, установленным к значению SC_SCREENSAVE, но это не передает сообщения функции DefWindowProc.


Короче машинный перевод не поможет.
Поэтому читать MSDN надо самому. И особых знаний английского не требуется, чтение хэлпа как раз имхо начальный уровень.
А кроме MSDN нужно уметь ещё и хэлп читать.


> Всё же нельзя ли поконкретнее?
> Что я должен писать?


Конкретно, тебе имхо следует обрабатывать WM_SYSCOMMAND и если wParam = sc_screensave, то не передавать сообщение в DefWindowProc.
Вернуть же следует 0, как следует из справки по WM_SYSCOMMAND

Return Values

An application should return zero if it processes this message.


> с типом tmessage мог ошибиться

С этим ок, хотя можно и TWMSysCommand.
Но "ошибок по крайней мере две" (с) АП


RagE   (2004-08-30 14:21:00) [4]

procedure WM_SYSCOMMAND(msg: TMEssage);override

а сама функция выглядит так
begin
 if Msg.msg=wm_syscommand and msg.wparam=sc_screensave then exit
 inherited;
end;

сорри за ошибки, писал по памяти, с типом tmessage мог ошибиться но суть ясна


DimOn2   (2004-08-30 12:48:00) [5]


> clickmaker ©   (30.08.04 12:38) [3]


Всё же нельзя ли поконкретнее?
Что я должен писать?


clickmaker   (2004-08-30 12:38:00) [6]


> Машинное обучение окно (CBT) присутствует

Не пользуйся ты этим промптом, учи аглицкий

активное приложение - не виндозное
присутствует окно, имитирующее ввод пользователя (клики и работу клавы)
активная прога получила сообщения wm_syscommand c параметром sc_screensave, но не передала его функции defwindowproc


DimOn2   (2004-08-30 12:28:00) [7]

Как только спасатель экрана выбран, нажатия клавиши мониторов Windows и движения мыши и затем начинает спасателя экрана после периода бездеятельности. Однако, Windows не начинает спасателя экрана, если любое из следующих условий существует:

Активное заявление - не заявление на основе Windows.
Машинное обучение окно (CBT) присутствует.
Активное заявление получает WM_SYSCOMMAND сообщение с wParam параметром, установленным на ценность SC_SCREENSAVE, но это не передает сообщение к функции DefWindowProc.

(Переведено в промте)

И чо?????????????????

Напиши плиз код


GuAV   (2004-08-30 00:32:00) [8]

из MSDN

Once a screen saver is chosen, Windows monitors keystrokes and mouse movements and then starts the screen saver after a period of inactivity. However, Windows does not start the screen saver if any of the following conditions exist:

The active application is not a Windows-based application.
A computer-based training (CBT) window is present.
The active application receives the WM_SYSCOMMAND message with the wParam parameter set to the SC_SCREENSAVE value, but it does not pass the message to the DefWindowProc function.


Наверх

Титульная страница Поиск, карта сайта Написать письмо