Page 1 of 1

Можно ли привязать бинд кнопки к конкретному устройству?

Posted: 14 Jul 2017, 12:03
by yo228
Привет! Мне нужно было сделать бинд кнопки на мышке. Сделал.
Но когда я подключаю вторую мышку, скрипт автоматически работает и на ней тоже.
Но задача в том, чтобы одна мышь исполняла свои стандартные функции, а вторая -- с учётом скрипта.
Можно ли привязать скрипт только к какому-то конкретному устройству (в моём случае только к этой мышке) ?
Я буду очень признателен за любую помощь,
Всем заранее спасибо!

Re: Можно ли привязать бинд кнопки к конкретному устройству?

Posted: 15 Jul 2017, 04:58
by serzh82saratov
Нужна библиотека AHKHID. В Mice1 записать что будет в ToolTip % Clipboard := ProdName, при действиях мышью.

Code: Select all

#SingleInstance Force
#Persistent    
#NoEnv
ListLines Off  
SetBatchLines -1
 
AHKHID_UseConstants() 
AHKHID_Register(1, 2, A_ScriptHwnd, RIDEV_INPUTSINK ) 
OnMessage(0x00FF, "InputMsg") ; WM_INPUT

Mice1 = \\?\HID#VID_09DA&PID_9090&MI_01#7&5783f26&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}
Return


InputMsg(wParam, lParam) {
    Local ProdName, DevHandle 
    Critical      
    DevHandle := AHKHID_GetInputInfo(lParam, II_DEVHANDLE) 
	ProdName := AHKHID_GetDevName(DevHandle, True) ;имя устройства
	  ;	ToolTip % Clipboard := ProdName
    IsMice1 := ProdName = Mice1 ? 1 : 0
} 

Sound() {
    SoundPlay, %A_WinDir%\Media\ding.wav
}
 
#If IsMice1

WheelUp::
    SoundSet +5 
    Sound()
    Return

WheelDown::
    SoundSet -5 
    Sound()
    Return

#If

Esc::   
	ExitApp

Re: Можно ли привязать бинд кнопки к конкретному устройству?

Posted: 15 Jul 2017, 11:19
by yo228
serzh82saratov wrote:Нужна библиотека AHKHID. В Mice1 записать что будет в ToolTip % Clipboard := ProdName, при действиях мышью.
Я что-то не понимаю. что должно быть в буфере обмена (ToolTip % Clipboard) при действиях мышью.. :roll:

Re: Можно ли привязать бинд кнопки к конкретному устройству?

Posted: 16 Jul 2017, 02:41
by serzh82saratov
Что то типа этого: \\?\HID#VID_09DA&PID_9090&MI_01#7&5783f26&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}

Re: Можно ли привязать бинд кнопки к конкретному устройству?

Posted: 16 Jul 2017, 03:24
by serzh82saratov
Хотя наверное имя необязательно, хэндла должно быть достаточно.
Надо расскомментировать ToolTip, при движении мышек должно появлятся число, для каждой мыши своё. Число, которое всплывает при движении мыши которую надо зибиндить, нужно прописать в переменную Mice1. Закомментировать ToolTip, проверить - WheelUp и WheelDown с указанной мыши должны регулировать громкость, на остальных колёсико должно работать по умолчонию.

Code: Select all

#SingleInstance Force
#Persistent    
#NoEnv
ListLines Off  
SetBatchLines -1
 
AHKHID_UseConstants() 
AHKHID_Register(1, 2, A_ScriptHwnd, RIDEV_INPUTSINK ) 
OnMessage(0x00FF, "InputMsg") ; WM_INPUT

Mice1 = 393599
Return


InputMsg(wParam, lParam) {
    Local DevHandle 
    Critical      
    DevHandle := AHKHID_GetInputInfo(lParam, II_DEVHANDLE)
	  	; ToolTip % Clipboard := DevHandle
    IsMice1 := DevHandle = Mice1 ? 1 : 0
} 

Sound() {
    SoundPlay, %A_WinDir%\Media\ding.wav
}
 
#If IsMice1

WheelUp::
    SoundSet +5 
    Sound()
    Return

WheelDown::
    SoundSet -5 
    Sound()
    Return

#If

Esc::   
	ExitApp

Re: Можно ли привязать бинд кнопки к конкретному устройству?

Posted: 16 Jul 2017, 07:27
by yo228
Там, кстати, AHK выдаёт ту же самую ошибку, что и в первом способе, где имя прописывается.
Я добавил скриншот сюда: https://drive.google.com/open?id=0B2kUy ... FkzZ1BZR2s, но думаю, вы можете увидеть эту же ошибку при попытке запуска скрипта

Re: Можно ли привязать бинд кнопки к конкретному устройству?

Posted: 16 Jul 2017, 10:16
by serzh82saratov
serzh82saratov wrote:Нужна библиотека AHKHID.