1

Тема: AHK: Отправка нажатия в определенное активное приложение

Здравствуйте. Целый день мучаюсь, не могу найти или натыкать наобум нужное. В общем, чего бы хотелось: чтобы по нажатию боковых боковых дополнительных клавиш мыши (их VK-коды я с большим трудом натыкал) в активное окно запущенного KMPlayer посылались нажатия Home и End (их коды я тоже узнал) соответственно. Извините, что задаю такой элементарный вопрос.
Ну и заодно, чтобы два раза не краснеть: как сделать так, чтобы при зажатии клавиши эта операция обрабатывалась именно как зажатие - нажатие, секунда ожидания, нажатие, 0.1 секунды ожидания, нажатие, 0.1 секунды ожидания, и так далее, пока клавиша не будет отпущена. Описание этого я где-то находил по частям, но уж очень голова пухнет снова искать, поэтому решил спросить заодно.

2 (изменено: serzh82saratov, 2016-04-22 03:16:52)

Re: AHK: Отправка нажатия в определенное активное приложение


#If WinActive("ahk_class Winamp v1.x ahk_exe kmplayer.exe")
XButton1::
XButton2::
	Loop
	{
		Send % {XButton1:"{Home}",XButton2:"{End}"}[A_ThisHotkey] 
		KeyWait, %A_ThisHotkey%, % "T" (A_Index = 1 ? 1 : 0.1)
		If !ErrorLevel
			Break 
	}
	Return
#If

Или лучше так, тем более если кнопку надо нажимать по чаще.


#If WinActive("ahk_class Winamp v1.x ahk_exe kmplayer.exe")
XButton1::
XButton2::
	While GetKeyState(A_ThisHotkey, "P")
	{
		Send % {XButton1:"{Home}",XButton2:"{End}"}[A_ThisHotkey] 
		Sleep, % (A_Index = 1 ? 1000 : 10)
	}
	Return
#If
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Отправка нажатия в определенное активное приложение

Или так:

#Persistent
#KeyHistory, 0
SetBatchLines -1
#HotkeyInterval 0
#SingleInstance force
#IfWinActive, ahk_class KMPlayer v3.x

*~$XButton2::
KeyWait XButton2
SendInput {Home}
Return

*~$XButton1::
KeyWait XButton1
SendInput {End}
Return

В настройках KM для обеих кнопок выбрать "Нет действия".

4

Re: AHK: Отправка нажатия в определенное активное приложение

Спасибо большое за ответы! Но я не полностью ситуацию обрисовал, думал сам докумекаю, но нет... В общем, вот полностью: есть три мультимедийные клавиши, которые я хотел перенастроить на insert, уменьшение громкости, увеличение громкости. И в KMPlayer чтобы на дополнительные клавиши мыши можно было переходить на предыдущий - следующий файл в плейлисте (в настройках плеера указал для этого горячие клавиши home и end). Это две не связанные друг с другом задачи. И вот что получилось:

VKAC:: SC52
VKB4::
VKAA::
	While GetKeyState(A_ThisHotkey, "P")
	{
		Send % {VKB4:"{volume_down}",VKAA:"{volume_up}"}[A_ThisHotkey] 
		Sleep, % (A_Index = 1 ? 1000 : 10)
	}
	Return
#If

#If WinActive("ahk_class Winamp v1.x ahk_exe kmplayer.exe")
XButton1:: Home
XButton2:: End

Теперь в KMPlayer всё работает как хотел, спасибо вам, insert тоже работает, но громкость вверх-вниз перестала нажиматься, хотя в прежнем моем позорном коде работало:

VKAC:: SC52
VKB4:: volume_down
VKAA:: volume_up