1

Тема: AHK: Перестало работать: "Send {x}"

Есть скрипт для проигрывания Winamp по горячей клавише под Windows 7:

; Winamp play
LAlt & RAlt::
RAlt & LAlt::
if WinExist("ahk_class Winamp v1.x")
	{
		WinActivate ahk_class Winamp v1.x
		Send {x}
	}
Return

Все работало, но вдруг перестало. Окно активируется, но дальше "Send {x}" не посылается. Вручную "х" работает. Пробовал SendRaw, Sleep 100, Send {x down} {x up}. Пробовал старую версию. 1.1.33 при которой работало. Не работает!

2 (изменено: Alectric, 2023-05-25 20:30:46)

Re: AHK: Перестало работать: "Send {x}"

Может это поможет:

1::vkB3      ; плей\пауза
2::vkB2       ; стоп
3::vkAE        ; убавить громкость
4::vkAD        ; mute
5::vkAF       ; прибавить громкость
6::vkB0     ; следующий трек
7::vkB1    ; предыдущий трек
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

3

Re: AHK: Перестало работать: "Send {x}"

Может ну его нафиг костыли?

DetectHiddenWindows, On
PostMessage, 0x111, 40045,,, ahk_class Winamp v1.x	; X - Play

Указать свой класс окна винампа если не заработает.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

4

Re: AHK: Перестало работать: "Send {x}"

__Михаил__ пишет:

Может ну его нафиг костыли?

DetectHiddenWindows, On
PostMessage, 0x111, 40045,,, ahk_class Winamp v1.x	; X - Play

Указать свой класс окна винампа если не заработает.

Немного непонятно где тут обработка горячих клавиш
LAlt & RAlt::
RAlt & LAlt::

5 (изменено: __Михаил__, 2023-05-25 22:30:04)

Re: AHK: Перестало работать: "Send {x}"

stuermer
Наверно у каждого свои гор. клавиши для этого? Совсем уже лень?
Я предоставил прямое обращение в окно программы, остальное сами доделаете как нужно.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

6

Re: AHK: Перестало работать: "Send {x}"

Непонятно какие тут горячие клавиши и какой код для моих нужен. Коментарии надо писать, как у предыдущего пользователя.

7 (изменено: stuermer, 2023-05-26 18:08:06)

Re: AHK: Перестало работать: "Send {x}"

Еще перестало работать F12 в сочетании клавиш:

Ctrl & F12::

пробовал:

Ctrl & vk7B::

тоже не работает.

8

Re: AHK: Перестало работать: "Send {x}"

Это всё в Winamp? Может слетели настройки горячих клавиш самой Winamp?

9

Re: AHK: Перестало работать: "Send {x}"

Foma пишет:

Это всё в Winamp? Может слетели настройки горячих клавиш самой Winamp?

Нет, это просто горячие клавиши в Windows 10.

10 (изменено: stuermer, 2023-05-26 18:27:27)

Re: AHK: Перестало работать: "Send {x}"

Alectric пишет:

Может это поможет:

1::vkB3      ; плей\пауза
2::vkB2       ; стоп
3::vkAE        ; убавить громкость
4::vkAD        ; mute
5::vkAF       ; прибавить громкость
6::vkB0     ; следующий трек
7::vkB1    ; предыдущий трек


Media_Play_Pause::
if WinExist("ahk_class Winamp v1.x")
{
	WinActivate ahk_class Winamp v1.x
	Send {vkB3} ; = Send {x}
}
Return

Не работает. Надо сначала сделать WinActivate, иначе команды vk посылаются не в активное окно.

11 (изменено: Alectric, 2023-05-26 20:09:06)

Re: AHK: Перестало работать: "Send {x}"

Это медиа клавиши, они принимаются первым "медиа окном" которое начало воспроизводить. Например если сперва включить какой-нибудь ролик на ютубе, а затем включить любой другой плеер, то медиа клавиши будут восприниматься только в ютубе; если сначала включить плеер, затем ютуб, то соответственно плеер получит управление с медиа клавиш.
Это так, для справки. Хотя, наверно, в виндовс 10 всё изменилось.
По твоей проблеме не могу ничего сказать, винъампом не пользуюсь.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

12

Re: AHK: Перестало работать: "Send {x}"

Alectric
Проблема легко решается, только вот у stuermer нет желания проверять код, пользоваться поиском и т.д.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

13 (изменено: stuermer, 2023-05-26 21:17:40)

Re: AHK: Перестало работать: "Send {x}"

Спасибо за инфо. Надо, чтобы именно Винамп заиграл по LAlt+RAlt (= нажатие "x"). А по RCtrl+RAlt (= нажатие "v")- чтобы Винамп остановился.

14 (изменено: stuermer, 2023-05-26 21:48:28)

Re: AHK: Перестало работать: "Send {x}"

__Михаил__ пишет:

Alectric
Проблема легко решается, только вот у stuermer нет желания проверять код, пользоваться поиском и т.д.

PostMessage вместо Send работает. Но я не понимаю почему wParam 40045 это "x".
У "x" скан код 02D. Мне нужно и "v" послать в таком виде.

Media_Play_Pause::
if WinExist("ahk_class Winamp v1.x")
WinActivate ahk_class Winamp v1.x
;Send {x}
PostMessage, 0x111, 40045,,, A	; X - Play
Return

15

Re: AHK: Перестало работать: "Send {x}"

stuermer
Тут и не нужно ничего понимать - программисты винампа так сделали, отправка идёт не виртуальной кнопки всё таки.

Media_Play_Pause::
LAlt & RAlt::
PostMessage, 0x111, 40045,,, ahk_class Winamp v1.x	; X - Play.
Return

RAlt & LAlt::
PostMessage, 0x111, 40047,,, ahk_class Winamp v1.x	; V - Stop.
Return
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

16

Re: AHK: Перестало работать: "Send {x}"

40045 и 40047 — идентификаторы элементов оконного меню Винампа, соответствующих этим командам.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17 (изменено: stuermer, 2023-05-27 18:35:36)

Re: AHK: Перестало работать: "Send {x}"

П.С.
Оставались еще 2 проблемы:
1. Не работали сочетания клавиш в других программах, а раньше работали.
2. Не работало RCtrl-F12 в системе.

Оказалось, что:
1. При установке последней версии Винампа надо убрать пункт "Global Hotkeys Support". Это создавало конфликт.
2. На клавишу RCtrl был назначен другой AHK-скрипт для переключения раскладки клавиатуры.