1 (изменено: Lortrum, 2020-11-22 21:56:53)

Тема: AHK: Проверить исполняется ли процесс

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

2

Re: AHK: Проверить исполняется ли процесс

И Вам, здоровья!

Lortrum пишет:

Смотрел форумы, читал статьи - не помогло.

Всё верно. Именно так оно и работает.
Если есть желание сварить борща, но не знаешь КАК, а затем посмотришь Ютьюб и почитаешь кулинарных рецептов, то борщ всё ещё не начнёт вариться.

3

Re: AHK: Проверить исполняется ли процесс

Что тут может быть сложного?


#IfWinExist, ahk_class Notepad

Media_Play_Pause::
WinActivate
Return

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

4

Re: AHK: Проверить исполняется ли процесс

__Михаил__
Ваша команда активирует окно, а мне нужно вводить в неактивное.
Но спасибо за код. На основе его у меня получилось

#IfWinExist, ahk_class MusicBee

Media_Play_Pause::
ControlSend,, ^{Tab}
Return

^9::
ControlSend,, ^{Tab}
Return

#If

Я пытался подобной командой вводить Ctrl+O в неактивное окно плеера MusicBee - не получилось, вместо Ctrl+O в плеере срабатывает функция воспроизведения аудиофайла, настроенная на эту же клавишу (MM Play/Pause). Пытался так же в Process Hacker Ctrl+K > Ctrl+A > Delete - тоже не вышло. Команда работает только с блокнотом.

5

Re: AHK: Проверить исполняется ли процесс

Lortrum

1) Если MusicBee перехватывает клавишу сильнее чем скрипт это уже не ко мне вопросы. Могу лишь посоветовать повысить приоритет скрипта / использовать хуки и т.д.
2) ControlSend работает не всегда так, как нам хочется, иногда фиг заставишь отправить элементарно простую клавишу. Думаю нужно указывать контрол, куда отправлять клавиши.

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

6

Re: AHK: Проверить исполняется ли процесс

А чего просто нельзя в настройках программы выбрать пункт глобальная для комбинации клавиш? Или напишите свой плагин для этой программы.

7

Re: AHK: Проверить исполняется ли процесс

__Михаил__
Эта команда не работает нигде, кроме блокнота Windows.
Попробовал написать

#IfWinActive, ahk_class Vivaldi
F11::
MsgBox, "09"

, чтобы проверить, будет ли работать в браузере Vivaldi - при нажатии F11 MsgBox не появляется, хотя в браузере у меня на эту клавишу даже ничего не назначено.
Пробовал с использование хука:

#UseHook
#IfWinActive, ahk_class Vivaldi
F11::
MsgBox, "09"
#UseHook off

- Не получилось.

8

Re: AHK: Проверить исполняется ли процесс

Lortrum

#IfWinActive не тоже самое что #IfWinExist

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

9

Re: AHK: Проверить исполняется ли процесс

Lortrum пишет:

__Михаил__
Эта команда не работает нигде, кроме блокнота Windows.
Попробовал написать

#IfWinActive, ahk_class Vivaldi
F11::
MsgBox, "09"

Lortrum, а вы уверены, что там ahk_class Vivaldi? Как вы его узнали?

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

10

Re: AHK: Проверить исполняется ли процесс

Спасибо. Я понял свою ошибку.