Главная страница
    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.46 MB
Время: 0.04 c
14-1095076029
Sergey13
2004-09-13 15:47
2004.10.03
Президент совершил революцию в системе выборов


14-1094916859
Slaga
2004-09-11 19:34
2004.10.03
PenDrive


3-1094187253
Еврей ;)
2004-09-03 08:54
2004.10.03
Запрос на сервере


3-1094450667
Fynjy1984
2004-09-06 10:04
2004.10.03
Дерево


8-1089457559
Andrew
2004-07-10 15:05
2004.10.03
Как можно изменять количество витков спирали на канвасе Bitmap?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский