Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
DeDM1shaz
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 6
#1

Взаимосвязь правой кнопки мыши с функцией getch - C++

08.06.2016, 22:04. Просмотров 292. Ответов 2

Доброго времени суток! Перед тем, как описать суть проблемы, небольшой ввод: в своем проекте (консольная игрушка) использую функцию getch, для управления менюшкой.
Сегодня случайно узнал то, что правый клик мышки обладает невменяемой особенностью - с какого то перепугу ПКМ имеет рандомный ряд числовых значений таблицы ASCII (работаю как раз таки с ней, для связи кнопок с getch), что в свою очередь создает иллюзию обмана (выражается это в том, что мышкой удается управлять ДОСовским окном, то бишь консолью), а так же из-за того, что постоянно ПКМ принимает разные числовые значения, рано или поздно значения проходят успешно через ИФовые (if) условия, и как бы выходит, что можно играть мышкой.

Написал программу, которая выводит на экран номер нажатой клавиши, и она выдает практически всегда разный результат после компиляции - в первом запуске одновременно ПКМ принял значение более 30 чисел (число 32 повторилось 13 раз, число 34 повторилось 4 раза, были и единичные случаи чисел, такие как 119 115, 103, 99, 97).
Во втором запуске ряд чисел был меньше, но вновь число 32 преобладало преимуществом в виде количества.
В последующих запусках, ПКМ принимал одно число, которое выводилось по нескольку раз, числа были следующие: 13, 50

Вообщем, вопрос прямой: есть ли хоть какая то возможность (при запуске консольного приложения) отключить мышь, или предотвратить присвоение числового значения по таблице ASCII по клику мышки (при чем, для активации этого бага/фичи - необходимо клацнуть по ПКМ в среднем 20 раз)?
Миниатюры
Взаимосвязь правой кнопки мыши с функцией getch  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2016, 22:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Взаимосвязь правой кнопки мыши с функцией getch (C++):

Обработка нажатия правой кнопки мыши - C++ Builder
Вопрос по сабжу. Как реализовать на компоненте TPanel?

Как отследить нажатие правой кнопки мыши? - C++ Builder
Здраствуйте, нужно сделать макрос для одной игры. Если человек нажал правую кнопку мыши(ну и конешно отпустил ее), то нужно программно...

Перемещение объекта правой кнопкой мыши - C++ Builder
Добрый день. Вопросик есть. Перемещаю панель по MouseDown if(Button == mbLeft) { ReleaseCapture(); Map->Perform(WM_SYSCOMMAND,...

Блокировка копирования и вставки правой кнопкой мыши - C++ Builder
нужна функция не позволяющая вставлять (к примеру в Edit) правой кнопкой мыши. чтобы понятнее было объясню для чего нужно. есть поле ввода...

Запрет клика правой кнопкой мыши в программе - C++ Builder
Подскажите, пожалуйста, код.

DbGridEh (или dbgrid) выделение правой кнопкой мыши - C++ Builder
Добрый день. Подскажите пожалуйста как выйти из подобной ситуации. Есть DBGridEh, в нем включен мультиселект. При нажатии левой кнопки...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rao
853 / 406 / 119
Регистрация: 02.04.2014
Сообщений: 1,171
09.06.2016, 20:02 #2
Это что-то невероятное,.. .откуда у мышки может быть ввод символов??? Выкладывай проект посмотреть, как тебе такое удалось. Обычно в консоли от правой кнопки мыши контекстное меню появляется и больше ничего.
DeDM1shaz
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 6
10.06.2016, 16:42  [ТС] #3
Для подтверждения происходящего снял несколько видео, скачав перво-попавшийся софт, залил на ютуб с доступом только по ссылке:
1) Первый запуск: https://www.youtube.com/watch?v=MsxrrGBib3M
2) Второй запуск: https://www.youtube.com/watch?v=gYzA...ature=youtu.be

Если захотите дополнительный пруф - одновременно снимал на камеру телефона то, как я клацаю на ПКМ и происходит вывод на экран (если потребуется, я скину - но на видео действительно НЕ была задействована клавиатура).

Этот баг, или фича, происходит не сразу, может потребоваться по 3-4 повторного запуска консоли для его реализации.
1. В первом запуске я несколько раз кликнул по ПКМ, и каждые 100 раз выводилось разное число (иногда повторялись).
2. Во втором запуске каждый клик по ПКМ присваивал значение 13 (сходство с энтером) по 4 раза за клик.

Откровенно хз что с этим делать, сам проект - в котором я заметил эту особенность выложить не смогу, по причине того - что патч к следующей версии игры еще не дописан, если кому интересно - на моей стене вк [cut]выкладываю новости про этот патч.

Добавлено через 18 часов 35 минут
Вторая ссылка изменилась:
2) Второй запуск: https://www.youtube.com/watch?v=gYzAjoAY1bk
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2016, 16:42
Привет! Вот еще темы с ответами:

Как отловить нажатие правой клавиши мыши в новом компоненте? - C++ Builder
Помогите с проблемой. Создаю новый компонент на основе TImage. Хочу отловить на нем нажатие правой клавиши. Пихаю прототип в protected:...

ListView. Выбор элемента при клике правой кнопкой мыши - C++ Builder
Нужно, чтобы при клике правой кнопки мыши по элементу выбирался этот самый элемент TreeView. Как перевести на него фокус, я знаю. А как...

Нажатие на пункт PopupMenu MenuItem по событию MenuItemClick правой или левой кнопкой мыши - C++ Builder
Собственно никак не получается. Надо, чтобы по левой работал код пункта, а по правой только чекинг ставился... по...

Компонент MaskEdit должен стать доступным, если нажать на нем правой кнопкой мыши с зажатой клавишей Ctrl - C++ Builder
На форме разместить компонент MaskEdit, в котором нельзя изменять текст. Если нажать на компоненте правой кнопкой мыши с зажатой клавишей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru