17 июля 2012 года в17.07.2012 01:29 2 0 10 1

Турбо Тумблер

В этом посте я напишу, как ускорить работу в тумблере. Дэшборд тумблера имеет встроенную jk-навигацию: j/k - предыдущий/следующий пост, Left/Right - предыдущая/следующая страница, L - лайк, R - реблог. Все эти кнопки можно повесить на джойстик или геймпад. Вот такой скрипт я написал для себя:

; Блок инициализации

SetKeyDelay 30
; Осевая кнопка (D-pad) не имеет конкретного кода, для получения нажатия необходимо узнать значение переменных JoyY и JoyX. Для этого с помощью таймера каждые 30мс запускается процедура WatchAxis.
SetTimer, WatchAxis, 30
return


; Блок горячих кнопок

Joy1::Send {r} ; Кнопка 1 - реблог

Joy4::Send {l}
; Кнопка 4 - лайк

Joy8::
; Кнопка 8 (Boss key) - минимизирует текущее окно. При повторном нажатии восстанавливает обратно.

; Получаем ID (active_id) текущего окна (А), а так-же проверяем, в каком оно состоянии (m):
; m = 0 - окно не минимизировано и не максимизировано
; m = 1 - окно максимизировано
; m = -1 - окно минимизировано


WinGet, active_id, ID, A
WinGet, m, MinMax, A
if i > 0 || m < 0
{
; Eсли окно было свернуто, восстанавливаем.
WinRestore, ahk_id %active_id2%
i: = 0
; окно восстановлено.
}
else
{
; Сворачиваем окно.
WinMinimize, ahk_id %active_id%
active_id2 = %active_id%
; T.к WinGet обновляет переменную active_id каждый раз, когда нажимается кнопка, переменная active_id2 хранит ID свернутого окна от изменения.
i: = 1
; тут мы указываем, что окно было свернуто.
}
return
; Конец процедуры для кнопки 8

WatchAxis:
; Процедура управления осевой кнопкой (D-pad) геймпада, содрана из хелпа.
GetKeyState, JoyX, JoyX
; Get position of X axis.
GetKeyState, JoyY, JoyY
; Get position of Y axis.
KeyToHoldDownPrev = %KeyToHoldDown%
; Prev now holds the key that was down before (if any).

if JoyX > 70
; Cюда вписываем, какие кнопки нам нужну на D-pad'e.
KeyToHoldDown = Right
else if JoyX < 30
KeyToHoldDown = Left
else if JoyY > 70
KeyToHoldDown = j
; на один пост вверх
else if JoyY < 30
KeyToHoldDown = k
; на один пост вниз
else
KeyToHoldDown =

if KeyToHoldDown = %KeyToHoldDownPrev%
; The correct key is already down (or no key is needed).
return

; Otherwise, release the previous key and press down the new key:
SetKeyDelay -1
; Avoid delays between keystrokes.
if KeyToHoldDownPrev
; There is a previous key to release.
Send, {%KeyToHoldDownPrev% up}
; Release it.
if KeyToHoldDown
; There is a key to press down.
Send, {%KeyToHoldDown% down}
; Press it down.
return

Думаю, комментировать тут нечего, если возникнут вопросы, задавайте, постараюсь ответить на все.

Комментарии

Зарегистрируйтесь или войдите, чтобы добавить комментарий

Новые заметки пользователя

JK83 — Это просто Вьюи блог

2

Турбо Тумблер

В этом посте я напишу, как ускорить работу в тумблере. Дэшборд тумблера имеет встроенную jk-навигацию: j/k - предыдущий/следующий пост, L...