1 (изменено: vitek19841210, 2022-02-06 10:55:18)

Тема: AHK: Не работает горячая клавиша Down

Всем привет! Не могу понять в чем дело. В одном из скриптов есть необходимость использовать в качестве горячей клавиши клавишу вниз (down) и пробел (space). Горячая клавиша срабатывает, если нажимать вручную. Но если клавиша нажимается командой send (и другими её вариациями), то сама клавиша срабатывает, но как горячая - нет! С клавишей пробел такой проблемы не возникает. Спокойно командой send срабатывает. Но там другая проблема. Клавиша срабатывает как горячая, но не срабатывает как нажатие пробела. Куда копать?
И реально ли сделать так, чтобы при нажатии в одном из скриптов клавиши пробел или вниз - срабатывала и сама клавиша в том приложении, где это необходимо, и как горячая в другом скрипте?

2 (изменено: Prova5458, 2022-02-06 11:11:06)

Re: AHK: Не работает горячая клавиша Down

Ничего не понял) Тебе нужно, чтобы пробел нажимал кнопку вниз, а кнопка вниз активировала свой скрипт? Если да, то не проще сделать один скрипт и все? Скажи, что именно нужно сделать и для чего, возможно помогу

3

Re: AHK: Не работает горячая клавиша Down

Имеется 2 одновременно работающих скрипта. Необходимо, чтобы при нажатии кнопки вниз в одном скрипте, кнопка сработала и как горячая клавиша для второго скрипта (поставив его на паузу) и как сама кнопка вниз в том приложении, где используются скрипты. И обратная ситуация для кнопки пробел: снять с паузы второй скрипт, и как пробел в приложении.

4

Re: AHK: Не работает горячая клавиша Down

Скрипты зацикливать? Или оставить по одиночному нажатию

5

Re: AHK: Не работает горячая клавиша Down

vitek19841210, смотрите #InputLevel и SendLevel.

6 (изменено: vitek19841210, 2022-02-06 12:34:37)

Re: AHK: Не работает горячая клавиша Down

Taveron пишет:

vitek19841210, смотрите #InputLevel и SendLevel.

Да, это интересно и очень близко к тому, что мне нужно. Прочитав про эти 2 параметра, понял, что могу реализовать всё вообще по-другому. Я недостаточно понимаю все механизмы работы AHK. Перефразирую тогда задачу. У меня есть такая необходимость, чтобы приложение, с которым работают скрипты AHK получало только те нажатия клавиш, которые прописаны в скриптах. Другие клавиши (любые) крайне нежелательны. Я правильно понимаю, если я буду использовать комбинации клавиш для паузы/снятия с паузы (комбинации будут прописаны во втором скрипте) - эти комбинации клавиш "увидит" только первый скрипт при срабатывании горячей клавиши. А приложение, с которым работают скрипты вообще это нажатие не зафиксирует?

7 (изменено: Taveron, 2022-02-06 12:57:20)

Re: AHK: Не работает горячая клавиша Down

vitek19841210 пишет:

Другие клавиши (любые) крайне нежелательны.

Речь идёт о любых горячих клавишах или вообще любых клавишах? Если о горячих клавишах, то их можно привязать к определённому окну. Например:


#IfWinActive ahk_exe notepad.exe
F1::MsgBox, Вы нажали F1 в окне блокнота.

8

Re: AHK: Не работает горячая клавиша Down

Prova5458, добро пожаловать на форум! Ознакомьтесь, пожалуйста, с Правилами, отредактируйте свои посты. Обратите внимание на точки в конце предложений.

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

9

Re: AHK: Не работает горячая клавиша Down

Речь о любых лишних нажатиях, которые может сделать скрипт (ручное нажатие клавиш тут мне без разницы), и которые может "увидеть" программа, с которой работают скрипты. Если я сделаю, например комбинацию !F1 для паузы во втором скрипте и пропишу send !{F1} в первом - это нажатие  "увидит" только первый скрипт или программа тоже эту комбинацию заметит?

10

Re: AHK: Не работает горячая клавиша Down

Если используется #InputLevel, то Send !{F1} сработает как горячая клавиша из второго скрипта.

11

Re: AHK: Не работает горячая клавиша Down

Taveron пишет:

Если используется #InputLevel, то Send !{F1} сработает как горячая клавиша из второго скрипта.

Тут вроде как разобрался. Горячие клавиши работают так, как мне нужно. Остается открытым вопрос. "Прозрачно" ли для программы, с которой работают скрипты это нажатие? Или она его заметит? Для меня это очень актуально. Нужно, чтобы не заметила.

12

Re: AHK: Не работает горячая клавиша Down

По-моему какая ерунда в коде. Паузу лично вообще не использую - нет нужды. Если скрипт предназначен строго для одного окна - '#IfWinActive', перехват клавиш только в нём. Никакие посылки клавиш в другие окна так не действуют. Если используются комбинации клавиш для активации метки / функции скрипта то тут уже окно заметит нажатый модификатор (первую клавишу из нескольких). Чтобы такого не произошло нужно тогда по отдельности перехватывать каждую.

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

13 (изменено: vitek19841210, 2022-02-09 15:36:31)

Re: AHK: Не работает горячая клавиша Down

Да, действительно, я не подумал про первую клавишу. Сейчас вроде добился чего хотел. Для горячих клавиш решил использовать кнопки Home (пауза) и End (возобновление).
Такая конструкция во втором скрипте посылает в первый скрипт паузу:


SendLevel 1
send {home}
SendLevel 0

Вроде как программа не "видит" нажатие Home.

14

Re: AHK: Не работает горячая клавиша Down

vitek19841210, не заметит. Вы это могли бы и сами проверить, а не дожидаться ответа.

15

Re: AHK: Не работает горячая клавиша Down

Спасибо за помощь!