Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.048 c
3-1094101624
46_55_41_44
2004-09-02 09:07
2004.10.03
Как можно узнать на какую запись в гриде наведена мышь?


1-1095652380
Артем К.
2004-09-20 07:53
2004.10.03
Здравствуйте. Как сделать анимированный курсор в программе?


3-1094535962
Senator
2004-09-07 09:46
2004.10.03
RxDBLookupCombo


14-1094670385
Убить Билла
2004-09-08 23:06
2004.10.03
А что, собственно, хорошего в WinXp по сравнению с Win9x/Me?


1-1095448396
4МО
2004-09-17 23:13
2004.10.03
TaskBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский