AutoHotKey не блокирует ввод - PullRequest
0 голосов
/ 12 февраля 2020

Я создаю сценарий, который прослушивает указанную горячую клавишу c и, получив ее, должен перехватывать и перенаправлять любые входные данные до тех пор, пока не прекратит работу в OBS, чтобы я мог выполнять изменения сцены и источника без активной и сфокусированной OBS. application.

В этом отношении сценарий отлично работает, за исключением того, что он не блокирует отправку входных данных активному приложению. Он по-прежнему отправляет мой вклад в активное приложение, когда это не должно быть сделано. В документации сказано, что он должен блокировать и захватывать ввод, когда команда ввода активна.

Методы устранения неполадок (ни один из них не работал):

  • Попытка использовать варианты MatchList без ключей-модификаторов ( т.е. просто "E,C,M")
  • Попытка использовать InputHook() с InputHook.KeyOpt("{All}","-V") явно установленным
  • Попытка запустить сценарий от имени администратора (команда BlockInput, очевидно, требует этого, даже если это не задокументировано; я думал, что это может быть похоже на Input и InputHook())

Я использую AHK v1.1.32.00 на Windows 7 Ultimate

Рассматриваемый сценарий:

SetTitleMatchMode, RegEx

^#S::
Input, OBSKeys, * T10, {Esc}, ^E,^C,^M
Switch OBSKeys
{
    case "^E": ControlSend, , ^E, ^OBS \d+\.\d+\.\d+
    case "^C": ControlSend, , ^C, ^OBS \d+\.\d+\.\d+
    case "^M": ControlSend, , ^M, ^OBS \d+\.\d+\.\d+
}
return
...