1 (изменено: robot888, 2010-12-06 04:48:31)

Тема: AHK: Универсальный маппер для HID устройств

Добрый день. Уже несколько дней занят одним вопросом, который видимо беспокоит не только меня. На АН вышел поисками решения, и на ваш форму, как на самый внятный по AutoHotKey.
Итак, я работаю в 3DsMax и есть огромная необходимость перемаппить кнопки usb манипуляторов вроде трэкболла. Задача выглядела просто до тех пор, пока я не начал ее решать.
В системе (Windows 7 x64) установлены два манипулятора -
Logitech Trackman Marble (http://www.logitech.com/assets/14756/14756.png)
Wacom Intous 3 Wide (http://www.wacom.ru/intuos3_a6_wide.html)

оба они управляют курсором как мышка. В фирменном драйвере трэкбола нет возможности настроить его так, как это нужно.
А нужно так:
чтоб пока просто крутиться трэкбол была нажата кнопка Mbutton вместе с вращением (это панарамирование камеры). Тоесть пока трэкбол вращается все время держать среднюю кнопку, как вращения нет - отпускать.
потом - когда нажата Xbutton2 то должна быть нажата Mbutton+Alt и удерживать вращая до отпускания (это вращение камеры).
потом - когда нажата Xbutton1 и вращая трэкбол надо чтоб он работал как колесико прокрутки (это зум камеры)

так же есть два ньюанса: чтоб это выполняла не любая мышка а именно конкретный девайс (может по ID его как то выцеплять) и второе - это должно работать только в программе 3DsMax когда фокус в нем.

я нашел видео, где сделали 3д рисовалку на таком принципе, в двух руках по манипулятору и процесс становиться просто превосходным.
вот пример - http://www.youtube.com/watch?v=gTKSBzg67xs

Для любого пользователя любой 3д программы будет счастьем иметь такой скрипт. Для Mac OS есть прекрасная программа, которая делает такой маппинг очень легко, называется ControllerMate http://www.orderedbytes.com/controllermate/ но под виндовс я ничего такого не нашел, хотя рою уже наверно не меньше недели.

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

Gui, Add, GroupBox, x12 y30 w320 h50 , Select destination software:
Gui, Add, Button, x223 y50 w89 h20 , Browse...
Gui, Add, GroupBox, x12 y90 w320 h60 , Select known device:
Gui, Add, DropDownList, x32 y110 w180 h20 , Mouse1
Gui, Add, Button, x162 y390 w80 h20 , Cancel
Gui, Add, Button, x252 y390 w80 h20 , Save
Gui, Add, Edit, x32 y50 w180 h20 , Path
Gui, Add, GroupBox, x12 y160 w320 h220 , What we do now?
Gui, Add, Edit, x32 y180 w280 h180 , 
; Generated using SmartGUI Creator 4.0
Gui, Show, x750 y535 h434 w350, Ghost mapper v0.1
Return

GuiClose:
ExitApp

даже иконка есть http://lh3.ggpht.com/_fX_Q7jEGPtc/TPvyoFb7dJI/AAAAAAAAABQ/VTRLtC_qxME/ghost_icon.png

уже прописать "заменить кнопку 1 на кнопку 2" справятся думаю многие.
Прошу помощи у знатоков АН, вы сделаете неоценимую услугу многим пользователям программ, так как такую утилиту думаю можно было бы применять где угодно.

________________________________________________

Заранее спасибо

2

Re: AHK: Универсальный маппер для HID устройств

OFF:

…AutoHotScript

Таким языком не занимаемся .

3 (изменено: robot888, 2010-12-06 01:12:26)

Re: AHK: Универсальный маппер для HID устройств

alexii пишет:

OFF:

…AutoHotScript

Таким языком не занимаемся .

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


думаю для начала было бы здорово начать с простого. Вопрос такой - как узнать ID устройства и переназначать кнопки только для данного устройства? это уже поможет сделать результат.

4

Re: AHK: Универсальный маппер для HID устройств

Мб я немного не понял, но вроде тебе нужно при на нажатии одной кнопки вызвать совсем другую ? Или сочитание. Тогда могу посоветовать:
нажимаешь на значек АХК в трее, там выбираешь открыть, жмеш нужную тебе кнопку, потом ctrl+k и там отображается её код(оч удобно, дает посылку не щзависимо от языка)
Итак допустим тебе нужна кнопка "L" - её номер 026, а нажмать по нажатию её нужно на "интер" 01С.

sc026::                               
        send {sc01С}
return

В ахк альт назначен на значение "!"

5 (изменено: robot888, 2010-12-07 05:47:16)

Re: AHK: Универсальный маппер для HID устройств

как получить кнопки код я знаю, и как заменить кнопку на другую с нажатыми кнопками у меня тоже вышло.
вот что я не смог найти - как то сделать к конкретному устройству. например - в системе есть две обычных мышки, надо перемапить на одной из мышек кнопки но, чтоб это не действовало на другую. очевидно, что нужно узнать в системе вендор id или device id, прописать их в скрипте и перемапить кнопки только на этом девайсе.
вот и вопрос - как это сделать.

вот нашел такое -
Examples on how to use it:
Example 1 allows you to look at all the HID devices currently connected to your computer.
Example 2 allows you to register devices and examine the data coming out.
Example 3 is an example on how to detect mouse events, such as left mouse button up, wheel down, etc...
линк -http://www.autohotkey.com/forum/topic41397.html

скажите кто знаеть, это в том направлении хоть ищу?

------------------------------------------

вот сам скрипт замены того, что мне надо

#InstallMouseHook
XButton1: Send, {Alt Down}{MButton Down}
XButton1 Up:: Send, {Alt Up}{MButton Up}

кстати есть, нюанс  - одном компе этот скрипт работает а на другом дает лайн эррор. версии АНК установлены одинаковые