<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Работа с AHKHID]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=9622</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=9622&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Работа с AHKHID».]]></description>
		<lastBuildDate>Mon, 19 May 2014 14:08:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83111#p83111</link>
			<description><![CDATA[<p>Большое спасибо. Такой вариант работает как надо.</p>]]></description>
			<author><![CDATA[null@example.com (Vlad Dae)]]></author>
			<pubDate>Mon, 19 May 2014 14:08:45 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83111#p83111</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83110#p83110</link>
			<description><![CDATA[<p>Да, и танцы с гуи излишни.<br /></p><div class="codebox"><pre><code>
#SingleInstance Force
#Persistent    
#NoEnv
ListLines Off  
SetBatchLines -1
 
AHKHID_UseConstants() 
AHKHID_Register(1, 2, A_ScriptHwnd, RIDEV_INPUTSINK ) 
OnMessage(0x00FF, &quot;InputMsg&quot;) ; WM_INPUT
Mice2 = \\?\HID#VID_0518&amp;PID_0001&amp;MI_01&amp;Col01#8&amp;3125ebc9&amp;0&amp;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) ;имя устройства     
    IsMice2 := ProdName = Mice2 ? 1 : 0  
} 

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

WheelUp::
    SoundSet +5 
    Sound()
    Return

WheelDown::
    SoundSet -5 
    Sound()
    Return

#If
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Mon, 19 May 2014 13:38:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83110#p83110</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83109#p83109</link>
			<description><![CDATA[<p>Не знаю может ли AHKHID перехватывать ввод, потому будем считать костылём:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>
#SingleInstance Force
#Persistent    
#NoEnv
ListLines Off  
SetBatchLines -1
Global IsMice2 
; подключаем ГУИ для получения сообщений
Gui +LastFound -Resize -MaximizeBox -MinimizeBox
Gui, Add, Text, x0 y0 w400 h300 vt1 , none
GuiHandle := WinExist()

; подключаем константы AHKHID
AHKHID_UseConstants()

; при получении сообщения запускаем функцию InputMsg
WM_INPUT := 0x00FF
OnMessage(WM_INPUT, &quot;InputMsg&quot;)

; регистрируем клаву. чтобы мы могли принимать с неё значения
; RIDEV_INPUTSINK - чтобы принимали сообщения в фоновом режиме
keydoard := AHKHID_Register(1, 2, GuiHandle, RIDEV_INPUTSINK )

;Show GUI
;Gui, Show

; Окончание секции авто-выполнения. Скрипт ожидает каких-нибудь действий пользователя.
Return 




;-----------------------------------------
; обробатывает входящее сообщение

InputMsg(wParam, lParam) {
    
    Local DevHandle, VKey, sLabel, ProdName
    Static Mice2 := &quot;\\?\HID#VID_0518&amp;PID_0001&amp;MI_01&amp;Col01#8&amp;3125ebc9&amp;0&amp;0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}&quot;
    
    Critical     
    
    DevHandle := AHKHID_GetInputInfo(lParam, II_DEVHANDLE) 
    ProdName := AHKHID_GetDevName(DevHandle, True) ;имя устройства     
  
    IsMice2 := ProdName = Mice2 ? 1 : 0
          
}

;-----------------------------------------
; воспроизводит звук

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




;------------------------------------------------------------- назначение клавиш

#If IsMice2

WheelUp::
    SoundSet +5
    Send, {WheelDown}
    Sound()
    Return

WheelDown::
    SoundSet -5
    Send, {WheelUp}
    Sound()
    Return

#If
</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Mon, 19 May 2014 13:34:13 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83109#p83109</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83107#p83107</link>
			<description><![CDATA[<p>Да.</p>]]></description>
			<author><![CDATA[null@example.com (Vlad Dae)]]></author>
			<pubDate>Mon, 19 May 2014 13:17:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83107#p83107</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83106#p83106</link>
			<description><![CDATA[<p>А скролл на клавиатуре определяется как WheelUp и WheelDown?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Mon, 19 May 2014 13:13:52 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83106#p83106</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83102#p83102</link>
			<description><![CDATA[<p>Задачу решил, но не в полной мере.<br />Вот код на данный момент:<br /></p><div class="codebox"><pre><code>
; подключаем ГУИ для получения сообщений
Gui +LastFound -Resize -MaximizeBox -MinimizeBox
Gui, Add, Text, x0 y0 w400 h300 vt1 , none
GuiHandle := WinExist()

; подключаем константы AHKHID
AHKHID_UseConstants()

; при получении сообщения запускаем функцию InputMsg
WM_INPUT := 0x00FF
OnMessage(WM_INPUT, &quot;InputMsg&quot;)

; регистрируем клаву. чтобы мы могли принимать с неё значения
; RIDEV_INPUTSINK - чтобы принимали сообщения в фоновом режиме
keydoard := AHKHID_Register(1, 2, GuiHandle, RIDEV_INPUTSINK )

;Show GUI
;Gui, Show

; Окончание секции авто-выполнения. Скрипт ожидает каких-нибудь действий пользователя.
Return 




;-----------------------------------------
; обробатывает входящее сообщение

InputMsg(wParam, lParam) {
    Local DevHandle, VKey, sLabel, ProdName
    
    Critical    ;Or otherwise you could get ERROR_INVALID_HANDLE
    
    ;получаем II_DEVHANDLE
    DevHandle := AHKHID_GetInputInfo(lParam, II_DEVHANDLE) 
    
    ProdName = % AHKHID_GetDevName(DevHandle, True) ;имя устройства    
    
    ; если имя устройства как у моей клавиатуры
    if ProdName = \\?\HID#VID_0518&amp;PID_0001&amp;MI_01&amp;Col01#8&amp;3125ebc9&amp;0&amp;0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}
    {
        
        ; получаем ключ кнопки
        VKey = % AHKHID_GetInputInfo(lParam, II_KBD_VKEY)

        ; получаем имя процедуры этой кнопки
        sLabel := &quot;Key_&quot; VKey
        
        ; если такая процедура есть - вызываем её
        If IsLabel(sLabel)
            Gosub, %sLabel%
            
    }
}

;-----------------------------------------
; воспроизводит звук

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




;------------------------------------------------------------- назначение клавиш

;keyboard scroll up
Key_120:
    SoundSet +5
    Send, {WheelDown}
    Sound()
Return

;keyboard scroll down
Key_65416:
    SoundSet -5
    Send, {WheelUp}
    Sound()
Return
</code></pre></div><p><em>SoundSet</em> на новой версии тоже заработал.</p><p><strong>Вопрос знатокам:</strong><br />У меня получается две мыши. Одна на клавиатуре, а вторая обычная.<br />Задать свои функции на колесико удалось, но как теперь сделать так, чтобы это колёсико не выполняло свою обычную функцию, скроллинг?</p><p>Пока я сделал костыль, в виде <em>Send, {WheelUp}</em>, когда на клавиатуре колёсико двигаем вниз. Чтобы возвращать скролл обратно. Но это работает не всегда.</p>]]></description>
			<author><![CDATA[null@example.com (Vlad Dae)]]></author>
			<pubDate>Mon, 19 May 2014 12:13:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83102#p83102</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83067#p83067</link>
			<description><![CDATA[<p>Ооо, действительно! Дело было в версии.<br />Спасибо. Я бы сам не догадался.</p>]]></description>
			<author><![CDATA[null@example.com (Vlad Dae)]]></author>
			<pubDate>Sat, 17 May 2014 17:04:49 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83067#p83067</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83065#p83065</link>
			<description><![CDATA[<div class="quotebox"><cite>Vlad Dae пишет:</cite><blockquote><p>AHK 1.0.48.05 (актуальная версия с сайта)</p></blockquote></div><p>Данная (basic) версия не актуальна уже ~5 лет, автор ее не развивает.<br />Новую версию можно скачать <a href="http://ahkscript.org/download/">тут</a>.</p>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Sat, 17 May 2014 14:43:15 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83065#p83065</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83064#p83064</link>
			<description><![CDATA[<div class="quotebox"><cite>Irbis пишет:</cite><blockquote><p>У меня работает, AHK 1.1.15.0 32бит Unicode, win8.1 32бит.<br />Проверь, покажет ли общее количество устройств такой скрипт:<br /></p><div class="codebox"><pre><code>MsgBox % AHKHID_GetDevCount()</code></pre></div></blockquote></div><p>AHK 1.0.48.05 (актуальная версия с сайта)<br />Win 7 64 бита</p><div class="codebox"><pre><code>MsgBox % AHKHID_GetDevCount()</code></pre></div><p>Выводит -1</p>]]></description>
			<author><![CDATA[null@example.com (Vlad Dae)]]></author>
			<pubDate>Sat, 17 May 2014 13:41:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83064#p83064</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83063#p83063</link>
			<description><![CDATA[<p>У меня работает, AHK 1.1.15.0 32бит Unicode, win8.1 32бит.<br />Проверь, покажет ли общее количество устройств такой скрипт:<br /></p><div class="codebox"><pre><code>MsgBox % AHKHID_GetDevCount()</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Sat, 17 May 2014 13:35:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83063#p83063</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Работа с AHKHID]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83062#p83062</link>
			<description><![CDATA[<p>Доброго времени суток.</p><p>У меня клавиатура от OKLICK, на которой есть скролл, как на мышке.<br />Задача - сделать управление громкостью через этот скролл.<br />Стандартный драйвер не работает. Именно моя версия клавиатуры (780L Win7) не поддерживается.</p><p>Через программу Keybord Maniac мне удалось решить задачу, но хотелось бы использовать не несколько программ, а только AHK.</p><p>Также, с помощью Keybord Maniac я знаю, что именно за этот скролл отвечают кнопки HID:<br />00000000280000003D00010000000000000000000004780000000000000000000000000000000000<br />00000000280000003D0001000000000000000000000488FF00000000000000000000000000000000<br />Скролл вверх и вниз соответственно.</p><p>С самим изменением громкости в AHK я разобрался, правда не через <em>SoundSet +10</em>, он почему-то не работает, а просто, через <em>Send, {Volume_Up}</em>.</p><p>Осталось только сделать возможность &quot;перехватить&quot; действие со скролла.</p><p>Нашёл библиотеку AHKHID.ahk и установил её в <em>\AutoHotkey\Lib</em>.<br /><em>example_1.ahk</em> от этой библиотеки запускается, но не видит устройств, в чём дело?<br /><span class="postimg"><img src="http://i.imgur.com/AzrI96R.png" alt="http://i.imgur.com/AzrI96R.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (Vlad Dae)]]></author>
			<pubDate>Sat, 17 May 2014 11:17:34 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83062#p83062</guid>
		</item>
	</channel>
</rss>
