Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] "Отловить" нажатие дополнительных (нестандартных) кнопок мыши

Ответить
Настройки темы
[решено] "Отловить" нажатие дополнительных (нестандартных) кнопок мыши

Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Здравствуйте. Хотел бы с Вами посоветоваться, как можно организовать "отлов" нестандартных кнопок мыши используя только средства Autoit. Мышь A4Tech X-710FS.
иРаньше просто устанавливал HotKeySet на какую-нибудь клавишу(например F11), а потом в ПО (программном обеспечении) от девайса ставил cтимуляцию нажатия F11, при нажатии на эту нестандартную кнопку мыши. Но это все муторно и нужен скрипт без использования дополнительного ПО.
Кстати, в игре CounterStrike в настройках управления можно установить какое-нибудь действие при нажатии на эту нестандартную кнопку. Отображается название нажатой кнопки как MOUSE3

-------
Ну вы ребята даёте...


Отправлено: 07:08, 27-03-2010

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


sashadeg, пробовал это: MouseSetOnEvent - Обработка событии мышки?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 12:45, 27-03-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Как я понял, это для стимулирования нажатия нестандартных (как там сказано БОКОВЫХ) кнопок мыши...
Или я что-то не понял?
Можно простой пример вот такого алгоритма:
Если нажать боковую кнопку мыши, то выскочит msgbox.

-------
Ну вы ребята даёте...


Отправлено: 14:35, 27-03-2010 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата sashadeg:
Как я понял, это для стимулирования нажатия нестандартных (как там сказано БОКОВЫХ) кнопок мыши »
Для отлова.

Цитата sashadeg:
Можно простой пример вот такого алгоритма »
Можно, но я допустил ошибку в библиотеке, для исправления нужно найти в ней:
Код: Выделить весь код
If $__MouseSetOnEvent_aEvents[$i][0] = $iEvent Or _
			$__MouseSetOnEvent_aEvents[$i][0] = $iEvent+8 Or $__MouseSetOnEvent_aEvents[$i][0] = $iEvent+16 Then
и заменить на:
Код: Выделить весь код
If $__MouseSetOnEvent_aEvents[$i][0] = $iEvent Or _
			($iEvent = $MOUSE_WHEELSCROLL_EVENT And ($__MouseSetOnEvent_aEvents[$i][0] = $iEvent+8 Or $__MouseSetOnEvent_aEvents[$i][0] = $iEvent+16)) Then
а вот сам пример:

Код: Выделить весь код
#include <MouseSetOnEvent_UDF.au3>

Global $iXButton_Pressed = 0

HotKeySet("^q", "_Quit")

_MouseSetOnEvent($MOUSE_XBUTTONUP_EVENT, "_MouseXButtonUp_Event")

While 1
    Sleep(10)

    If $iXButton_Pressed Then
        _MouseSetOnEvent($MOUSE_XBUTTONUP_EVENT)
        MsgBox(64, 'Title', 'X Button Pressed')
        Exit
    EndIf
WEnd

Func _MouseXButtonUp_Event()
    $iXButton_Pressed = 1
EndFunc

Func _Quit()
    Exit
EndFunc
P.S
Проверить негде, т.к у меня обычная мышь.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:19, 27-03-2010 | #4


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
я допустил ошибку в библиотеке, для исправления нужно найти в ней: »
исправил. Хотя у меня работало и без исправления Что делает это исправление?

Цитата Creat0R:
а вот сам пример »
Работало нормально, но когда вылетал msgbox то по нему удавалось кликнуть только раза с 15 =(
Будто он неактивный какой-то становился.
Когда изменил $MOUSE_XBUTTONUP_EVENT на $MOUSE_XBUTTONDOWN_EVENT проблема с msgbox'om отпала.
____________________________________________________________________________________________________ _________

Решил попробовать сделать НЕ одноразовый скрипт (вместо $MOUSE_XBUTTONDOWN_EVENT вписал $MOUSE_WHEELDOWN_EVENT (нажатие на ролик))
и у меня начала вылетать ошибка, после нескольких нажатий (10-20 раз)



Код: Выделить весь код
#include <MouseSetOnEvent_UDF.au3>

Global $iXButton_Pressed = 0

_MouseSetOnEvent($MOUSE_WHEELDOWN_EVENT, "_MouseXButtonUp_Event")
HotKeySet("^q", "_Quit")

While 1

$iXButton_Pressed = 0
_MouseSetOnEvent($MOUSE_WHEELDOWN_EVENT, "_MouseXButtonUp_Event")

    Sleep(10)

    If $iXButton_Pressed Then
        _MouseSetOnEvent($MOUSE_WHEELDOWN_EVENT)
        MsgBox(64, 'Title', 'X Button Pressed')

    EndIf
WEnd

Func _MouseXButtonUp_Event()
    $iXButton_Pressed = 1
EndFunc

Func _Quit()
    Exit
EndFunc

-------
Ну вы ребята даёте...


Отправлено: 08:33, 28-03-2010 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата sashadeg:
у меня работало и без исправления Что делает это исправление? »
А если нажать на правую кнопку мышки? Какая версия AutoIt?

Цитата sashadeg:
у меня начала вылетать ошибка »
А зачем в цикле задавать событие для кнопки?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 08:40, 28-03-2010 | #6


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Какая версия AutoIt? »
3.3.0.0
Цитата Creat0R:
А если нажать на правую кнопку мышки? »
в смысле если использовать $MOUSE_SECONDARYDOWN_EVENT?
Цитата Creat0R:
А зачем в цикле задавать событие для кнопки? »
ну я попробовал обнулять в цикле
$iXButton_Pressed = 0
и убрал EXIT после msgboxa - не помогло

а когда вписал в цикл ещё и
_MouseSetOnEvent($MOUSE_WHEELDOWN_EVENT, "_MouseXButtonUp_Event")
то все заработало
Вот только ненадолго

-------
Ну вы ребята даёте...


Отправлено: 09:29, 28-03-2010 | #7


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата sashadeg:
3.3.0.0 »
А на последней не пробовал?

Цитата sashadeg:
в смысле если использовать $MOUSE_SECONDARYDOWN_EVENT? »
Нет, просто нажать на мышке - должно сработать, не смотря на ошибочное событие.

Цитата sashadeg:
я попробовал обнулять в цикле »
Не нужно оно в цикле.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 17:44, 28-03-2010 | #8


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Не нужно оно в цикле. »
А где нужно?
Цитата Creat0R:
Нет, просто нажать на мышке - должно сработать, не смотря на ошибочное событие. »
а как мне это поможет?

-------
Ну вы ребята даёте...


Отправлено: 18:51, 28-03-2010 | #9


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата sashadeg:
А где нужно? »
Там где я это поставил.

Цитата sashadeg:
а как мне это поможет? »
А я не говорил что поможет, это воспроизводит багу, речь же шла о том чтобы показать в чём проблема (упомянутая выше).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 22:41, 28-03-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] "Отловить" нажатие дополнительных (нестандартных) кнопок мыши

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как произвести нажатие кнопок мыши без функций AutoIT и сторонних программ. CyberStyLe AutoIt 11 08-02-2010 14:22
[решено] Отловить нажатие по плюсику morgan1991 AutoIt 6 30-06-2009 10:54
[решено] Ограничение использования "горячих кнопок" по времени... Очень интересный вопрос... sashadeg AutoIt 3 24-03-2009 10:38
Прочие - Переназначение дополнительных кнопок мышки (Mouse4="Enter", Mouse5="Delete", etc) DreadMaster Программное обеспечение Windows 2 01-01-2009 17:54
[решено] Инверсия цветов и эффект "нажатых" кнопок в Win 2k3 Server SP1 MoRoman Microsoft Windows NT/2000/2003 5 11-04-2006 13:10




 
Переход