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

Вниз

Заставка   Найти похожие ветки 

 
DimOn2   (2004-08-29 14:22) [0]

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


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

из 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.


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

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

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

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

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

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


 
clickmaker ©   (2004-08-30 12:38) [3]


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

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

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


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


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


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


 
RagE ©   (2004-08-30 14:21) [5]

procedure WM_SYSCOMMAND(msg: TMEssage);override

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

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


 
GuAV ©   (2004-08-30 14:52) [6]

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

Однажды экранная заставка избрана, мониторы 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.
Но "ошибок по крайней мере две" (с) АП


 
GuAV ©   (2004-08-30 15:04) [7]

Попробуй лучше такое:
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;


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


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


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



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

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

Наверх




Память: 0.49 MB
Время: 0.046 c
4-1092953711
ZeBriD
2004-08-20 02:15
2004.10.03
как можно вывести комп из спящего режима?


14-1092922063
Sergey Kaminski
2004-08-19 17:27
2004.10.03
Nikon 3700


14-1095418547
}|{yk
2004-09-17 14:55
2004.10.03
Кто знает, как зайти на ftp сервер с полными правами, если


1-1095248267
roma
2004-09-15 15:37
2004.10.03
Button1


4-1092872191
RyDmi
2004-08-19 03:36
2004.10.03
Копия программы