Эмуляция сообщений
От: Antrekot  
Дата: 14.07.06 10:47
Оценка:
Необходимо постоянно эмлировать нажатие кнопки (сама кнопка отсутствует).

Эмуляция производится так:
#define VK_NONAME       0xFC
#define KEYEVENTF_KEYUP 0x2
keybd_event(VK_NONAME, 0, KEYEVENTF_KEYUP, 0);

Единственный вопрос стоит в том, что где необходимо прописать данный код, чтобы при нажатии других кнопок эмуляция нажатия приостонавливалась?



14.07.06 14:49: Перенесено модератором из 'C/C++' — Кодт
Re: Эмуляция сообщений
От: Antrekot  
Дата: 14.07.06 13:52
Оценка:
Еще нашел ссылки, одна из которых здесь
Автор: VictorT
Дата: 14.01.02
.
Сделал так же, но все равно не работает, экран гаснет как установлено в параметрах через 3 минуты.
Вот как выглядит код со структурой:
KEYBDINPUT ki;
ki.wVk = VK_NONAME;
ki.wScan = 0;
ki.dwFlags = KEYEVENTF_KEYUP;

INPUT in;
in.type = INPUT_KEYBOARD;
in.ki   = ki;

SendInput(1, &in, sizeof(in));


посоветуйте че-нить что ль!
Re[2]: Эмуляция сообщений
От: Константин Л.  
Дата: 14.07.06 18:06
Оценка:
Здравствуйте, Antrekot, Вы писали:

A>Еще нашел ссылки, одна из которых здесь
Автор: VictorT
Дата: 14.01.02
.

A>Сделал так же, но все равно не работает, экран гаснет как установлено в параметрах через 3 минуты.
A>Вот как выглядит код со структурой:
A>
A>KEYBDINPUT ki;
A>ki.wVk = VK_NONAME;
A>ki.wScan = 0;
A>ki.dwFlags = KEYEVENTF_KEYUP;

A>INPUT in;
A>in.type = INPUT_KEYBOARD;
A>in.ki   = ki;

A>SendInput(1, &in, sizeof(in));
A>


A>посоветуйте че-нить что ль!


объясни попонятнее что тебе надо
Re[2]: Эмуляция сообщений
От: AleX AciD Россия  
Дата: 16.07.06 21:42
Оценка:
Здравствуйте, Antrekot, Вы писали:

A>Сделал так же, но все равно не работает, экран гаснет как установлено в параметрах через 3 минуты.


Если вам нужно предотвратить запуск хранителя экрана, это можно сделать в функции окна, вернув ноль в ответ на сообщение WM_SYSCOMMAND с параметром wParam равным SC_SCREENSAVE:
   switch (uMsg)                 // Check For Windows Messages
   {
...
      case WM_SYSCOMMAND:        // Intercept System Commands
      {
         switch (wParam)         // Check System Calls
         {
            case SC_SCREENSAVE:     // Screensaver Trying To Start?
            case SC_MONITORPOWER:   // Monitor Trying To Enter Powersave?
            return 0;               // Prevent From Happening
         }
         break;                  // Exit
      }
...
   }

В приведенном примере также предотвращается отключение монитора.
Dura lex, sed lex
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.