Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> блок зажатия, Прервать поток сообщений от зажатой кноп 
:(
    Опции темы
Dalt
Дата 10.9.2011, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Код

#include <windows.h>
#include <string>
#include <fstream>
#include <iostream>

using namespace std;
int  main ( int argc,  char *argv[])
{ 

HWND ICE;
ICE = FindWindow("TAA_Main", ""); 

    MSG Msg = {0}; 
    RegisterHotKey(NULL, 1, 0,  VK_F2); 
    RegisterHotKey(NULL, 2, 0,  VK_F4); 
    
bool a = 1;  int i = 0;
clock_t time;

while (1){    Sleep (500);

if ( PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)  != 0  &&  Msg.message == WM_HOTKEY) 
                {
  
   switch ( Msg.wParam ){

       case 1:
                PostMessage(ICE, WM_KEYDOWN, VK_NEXT, 1);
                
                break;
                
       case 2: 
                PostMessage(ICE, WM_KEYDOWN, VK_PRIOR, 1);
                
                break;
                        }}}
 
return 0;}


И если зажать кнопку F2 к примеру то даже отпустив ее приложение будет продолжать слать сообщения что кнопка нажата.
Те. неполучается остановить поток сообщений сразу как клавиша отпущена(
Можно канешно используя GetAsyncKeyState(); проверять физически состояние клавиши на данный момент но мож есть еще способы?


PM MAIL   Вверх
Earnest
Дата 12.9.2011, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



Полагаю, оно не слать будет, а продолжать получать. Т.е. сообщения уже в очереди, но еще не обработаны. Почему не обработаны - вопрос к тебе. Скорее всего, что-то долгое делается.
Попробуй посмотри Спаем, какой поток сообщений приходит. Должно быть много нажатий, а затем отпускание.


Только что заметила, у тебя там еще и sleep нехилый перед каждым запросом к очереди. Ну и что ты хочешь от винды? Поставь слип побольше, и будешь получать сообщения в течении часа после отпускания кнопки.


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0422 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.