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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2007, 20:26   #1
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию Мышь многокнопочная

Возник такой вопрос:

События нажатия мыщью на ListBox (к примеру) можно получить от нажатия левой, правой, средней кнопкой мыши, но у меня на крысе есть две дополнительные кнопочки, и они запылились, возникла проблема: "Как их почистить, тобиш как получить нажатия от этих доп. кнопок, ведь в делфи только три кнопки прописано.
Очевидно нужно скорей всего через Api функции получить это нажатие.
Если кто-нибудь может что-нибудь подсказать или дать какие-нибудь ссылочки, буду безмерно благодарен.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 10.12.2007, 20:04   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

у меня самого нет такой мыши, но насколько я понял когда ты нажимаешь на одну из этих кнопок, драйвер мыши, имитирует какое-то событие, и фактически о существовании этих кнопок знает только сам драйвер. я даже не знаю для чего эти кнопки (сильно не пинать!), ты лучше поясни что они делают.
rpy3uH вне форума Ответить с цитированием
Старый 10.12.2007, 20:10   #3
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

У меня мышь 10 кнопочная. Левая, Правая, Колесо. Остальные кнопки с зашитым функционалом для мультимедиа (play/pause, громче/тише и т.д.)

Драйвер сам не ставил - ОС сама определила, т.ч. по поводу переназначения этих кнопок не подскажу.
Alex21 вне форума Ответить с цитированием
Старый 10.12.2007, 20:24   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Alex21 Посмотреть сообщение
Левая, Правая, Колесо. Остальные кнопки с зашитым функционалом для мультимедиа (play/pause, громче/тише и т.д.)
при нажатии на эти кнопки приложению не посылаются сообщения о том, что на них что-то нажато, драйвер сам убавляет или прибавляет звук, отсылает плееру сообщение о том что надо сделать паузу/возобновить. а по сути плеер то не знает что есть такие кнопки и что они нажаты, он только исполняет приходящие ему сообщения.
rpy3uH вне форума Ответить с цитированием
Старый 10.12.2007, 22:39   #5
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
при нажатии на эти кнопки приложению не посылаются сообщения о том, что на них что-то нажато, драйвер сам убавляет или прибавляет звук, отсылает плееру сообщение о том что надо сделать паузу/возобновить. а по сути плеер то не знает что есть такие кнопки и что они нажаты, он только исполняет приходящие ему сообщения.
Нет, по всему видимому драйвер отсылает какое-то событие, потому что, когда нажимаю левую дополнительную, в окне винды делается как-бы назад, т.е. как-будьто я нажал на кнопку "Назад", и тот же эффект с правой, только там "вперёд". Такая же фигня в Total Commander, и сё по-моему, нигде больше не замечал... а нет вот ещё кантре можно поставить доп. клавишу на какое нибудь действие (у меня на перезарядку стоит).
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 11.12.2007, 13:23   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Винда (ХР и 2000) через API поддерживает пятикнопочные мыши с 2 кнопками для навигации вперёд-назад, сообщение WM_XBUTTONDOWN/UP.
Вот эти-самые 2 кнопки для навигации могут и использоватся напрямую через API, но остальное точно через драйвер или (?) через HID (human interface devices), там вроде тока одно сообщение WM_INPUT и специальная структура, короче читать Великий Мануал

XButtons: (вперёд-назад) http://msdn2.microsoft.com/en-us/library/ms646245.aspx должно быть в делфи кстати
Raw input: (всё остальное) http://msdn2.microsoft.com/en-us/library/ms674827.aspx
пыщь

Последний раз редактировалось JTG; 11.12.2007 в 13:25.
JTG вне форума Ответить с цитированием
Старый 13.12.2007, 17:20   #7
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
Радость

Спасибо! Работает!
Вот на скорую руку накатал прогу:
Вложения
Тип файла: rar XMouse.rar (160.1 Кб, 33 просмотров)
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.

Последний раз редактировалось NoName_emaNoN; 13.12.2007 в 17:54.
NoName_emaNoN вне форума Ответить с цитированием
Старый 14.12.2007, 10:47   #8
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
Стрелка Еще чуть - чуть

Коль уж зашла речь о "модных переферийных устройствах", то возникает еще один вопрос:
Есть еще и модная клава с клавишами "Play" "Pause"...
И события нажатия этих клавиш не посылаются приложению в фокусе, а каким-то другим способом оповещаются, потому что WINAMP, даже будучи в трее как то получает нажатия этих клавиш и производит определённые действия.
Какие будут мысли?
У меня есть идея что тут нужны хуки, но я с ними не в ладах. Остаётся надеятся, что есть другие возможности получить эти события?
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 14.12.2007, 11:16   #9
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
Смех Ура!

Всё оказалось намного проще чем я думал:
Надо по таймеру считывать состояние клавишь,
узнать коды мультимедийных клавишь, и провеерять если щас нажата, то делать соответствующие действия. Даже не пришлось использовать хуки.
Ну вообщем сами посмотрите...
Вложения
Тип файла: rar XKeyboard.rar (161.9 Кб, 27 просмотров)
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 14.12.2007, 14:31   #10
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
Печаль

Работает... Да не полностью.
Когда окно свёрнуто, или не в фокусе, то считывание не удаётся.
В чем проблема не пойму.
И еще более странное то, что когда окно не фокусе, ведёшь мышью по окну и жмёшь мультимедийную клавишу, оно работает, а когда мышь не на окне, оно не работает. Что за ....
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мышь Михаил Юрьевич Общие вопросы Delphi 8 09.06.2008 11:23
мышь в паскале. Iceman Паскаль, Turbo Pascal, PascalABC.NET 6 10.03.2008 14:50
Уматная мышь Sibedir Свободное общение 8 21.01.2008 15:27
мышь хвостатая... Аlex Win Api 14 18.01.2008 00:30
Мышь kl45gp Общие вопросы Delphi 7 16.06.2007 22:47