Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2017, 11:29   #11
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от GoldSieg Посмотреть сообщение
как я понял это связано с компилятором, но я не могу его поменять.
Ну это стандарт С++11
уберите
using key_t = decltype(XK_KP_5);
замените 2 раза key_t на int (или как там описан код кнопки)
alexzk вне форума Ответить с цитированием
Старый 13.04.2017, 13:52   #12
GoldSieg
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 45
По умолчанию

ошибка const static std::vector<int> pattern{XK_KP_5};
на
Код:
const static std::vector<int> pattern{XK_KP_5};
и еще error: 'pattern' was not declared in this scope

все скобочки и ; проверил.. нельзя такую конструкцию в методе использовать?
GoldSieg вне форума Ответить с цитированием
Старый 13.04.2017, 14:20   #13
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Опять это С++11 ...а я уже забыл, как в старом

попробуйте варианты

const static std::vector<int> pattern({XK_KP_5});

const static std::vector<int> pattern = {XK_KP_5};

если все никак...тогда

static std::vector<int> pattern;

if (!pattern.size())
{
pattern.push_back(XK_KP_5);
pattern.push_back(XK_KP_5);
pattern.push_back(XK_KP_4);
}

...и да, в вашем примере, это будет реакция на кнопку 5. Вы же хотели последовательность? Вот ее и нада перечислить.

Последний раз редактировалось alexzk; 13.04.2017 в 14:22.
alexzk вне форума Ответить с цитированием
Старый 13.04.2017, 15:19   #14
GoldSieg
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 45
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение

static std::vector<int> pattern;

if (!pattern.size())
{
pattern.push_back(XK_KP_5);
pattern.push_back(XK_KP_5);
pattern.push_back(XK_KP_4);
}
Вот это заработало.
Цитата:
Сообщение от alexzk Посмотреть сообщение
...и да, в вашем примере, это будет реакция на кнопку 5. Вы же хотели последовательность? Вот ее и нада перечислить.
Да это понял, это я уже "урезал" все, что можно в поисках ошибки.
Пасибо большой за помощь!
GoldSieg вне форума Ответить с цитированием
Старый 13.04.2017, 15:32   #15
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от GoldSieg Посмотреть сообщение
Вот это заработало.

Да это понял, это я уже "урезал" все, что можно в поисках ошибки.
Пасибо большой за помощь!
..вы хоть отпишите, работает ли, как нада?) я ж прям на форуме тут писал. Удивительно, что так мало ошибок компиляции)))
alexzk вне форума Ответить с цитированием
Старый 13.04.2017, 16:14   #16
GoldSieg
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 45
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
..вы хоть отпишите, работает ли, как нада?)
Да вроде работает, ну точнее есть одна промашка.
если комбинацию ввести- срабатывает, если потом тыкнуть еще раз последнюю кнопку комбинации - опять срабатывает. Прерывается комбинация нормально.
GoldSieg вне форума Ответить с цитированием
Старый 13.04.2017, 16:22   #17
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

а какую комбинацию вы установили? Скорее всего у вас там полиндром выходит, что с начала в конец, что с конца в начало - все одинаково.
Там же очередь. Оно хранить последние нажатые кнопки в размере образца ... по идее.
Попробуйте 1-2-3-4, че так и будет глюк?

А еще, многие игры работают не на "пресс", а на "релиз", там подобные глюки от ОС. Попробуйте вставить в обработчик KeyRelease.
Ток не спрашивайте как - по образцу пресс )

Т.е. должно реагировать не на "нажатие", а на "отжатие".

Последний раз редактировалось alexzk; 13.04.2017 в 16:27.
alexzk вне форума Ответить с цитированием
Старый 14.04.2017, 09:15   #18
GoldSieg
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 45
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
1-2-3-4, че так и будет глюк?
Да действительно, вызывается только когда код - полиндром.
Цитата:
Сообщение от alexzk Посмотреть сообщение
А еще, многие игры работают не на "пресс", а на "релиз", там подобные глюки от ОС. Попробуйте вставить в обработчик KeyRelease.
Ток не спрашивайте как - по образцу пресс )
Да это я знаю, вот только разницы особой не вижу, все одно и то же. разве что и вправду могут быть непонятные баги касательно ОС (а она кстати linux).

у меня появились другие проблемы, но это уже другая история)
GoldSieg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программная генерация нажатия комбинации клавиш в jQuery Abimeleh JavaScript, Ajax 5 07.09.2015 16:49
Имитация нажатия комбинации клавиш! stalsoft C# (си шарп) 2 24.06.2011 00:13
Назначить действие комбинации кнопок обычной 3-кноп. мыши SVGuss Софт 0 11.03.2011 19:00
Комбинации клавиш Alessandro Rossi Свободное общение 8 28.11.2010 23:30
Имитация нажатия комбинации клавиш Zeraim Win Api 15 05.05.2008 20:35