Я создаю сценарий, который прослушивает указанную горячую клавишу 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