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

Помощь в написании скриптов
yo228
Posts: 3
Joined: 14 Jul 2017, 09:23

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

14 Jul 2017, 12:03

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

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

15 Jul 2017, 04:58

Нужна библиотека 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
yo228
Posts: 3
Joined: 14 Jul 2017, 09:23

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

15 Jul 2017, 11:19

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

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

16 Jul 2017, 02:41

Что то типа этого: \\?\HID#VID_09DA&PID_9090&MI_01#7&5783f26&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}
serzh82saratov
Posts: 45
Joined: 01 Jul 2017, 03:04

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

16 Jul 2017, 03:24

Хотя наверное имя необязательно, хэндла должно быть достаточно.
Надо расскомментировать 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
yo228
Posts: 3
Joined: 14 Jul 2017, 09:23

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

16 Jul 2017, 07:27

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

Return to “Помощь”

Who is online

Users browsing this forum: No registered users and 0 guests