1

У меня два хоста (windows-7) работают бок о бок. Я использую Мышь без границ, чтобы использовать одну мышь / клавиатуру (при использовании Synergy у меня та же проблема, поэтому все применимо и здесь).

На каждом хосте я запускаю несколько скриптов AHK, которые предоставляют некоторые сочетания клавиш. Так что, если моя установка такая:

  • Хост A - скрипт AHK A - клавиатура A
  • Хост B - скрипт AHK B - клавиатура A (с помощью мыши без границ / синергии)

При наборе:

  • Хост A: моя горячая клавиша (например, CapsLock-S всегда обрабатывается AHK-script-A (очевидно)
  • Хост B: в этом проблема ... во время ввода на этом хосте мое ключевое слово CapsLock-S SOMETIMES обрабатывается AHK-script-B (желаемый вывод), а SOMETIMES - AHK-script-A.

При вводе на хосте B должны запускаться только ярлыки AHK B, а не AHK A (на хосте A).

Вероятно, это зависит от порядка, в котором некоторые программы (ахх и т.д.) Запускались на каждом хосте, или от того, какое приложение в последний раз фокусировалось или что-то в этом роде, но я понятия не имею.

Кто-нибудь знает, как заставить это работать? Или как найти некоторый детерминизм о том, почему иногда это работает, а иногда нет?

2 ответа2

0

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

Два простых инструмента, с которых я мог бы начать ...

1) Поместите тильду перед определением горячей клавиши, которое позволяет проходить нажатию клавиши. Замените код простой подсказкой, чтобы показать, что выполняется. Посмотрите, какие нажатия клавиш проходят, а какие блокируются. Посмотрите, позволяет ли добавление тильды в обеих системах нажимать клавиши в системе, которая не выполняется иначе.

2) Откройте окна сценариев на A и B и перейдите к журналу нажатия клавиш для каждого. Отправьте ключи, которые, по-видимому, не работают, и посмотрите, делают ли они это в интересующем сценарии (предположительно, они не работают).

Упоминаемый вами индетерминизм интересен. В Remote Desktop и VNC, где у вас есть система A, возможно, перехватывающая нажатия клавиш, которые вы пытаетесь получить в System B, или, возможно, наоборот, поведение довольно детерминировано или может быть изменено в настройках программного обеспечения относительно того, какие ключи разрешены пройти к удаленному хосту, а какие нет.

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

0

Возможно, можно использовать команду #If и сделать горячие клавиши специфичными для каждого хоста, предполагая, что есть какой-то способ отличить каждый хост, используя одну из встроенных переменных для ОС https://www.autohotkey.com/docs. /Variables.htm#os (A_ComputerName или A_UserName)

Подробнее о # если здесь https://autohotkey.com/docs/commands/_If.htm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .