Приложение не принимает нажатия клавиш - PullRequest
5 голосов
/ 01 марта 2010

Я пытаюсь отправить нажатия клавиш в приложение VisualBoyAdvance с помощью AppleScript, но не могу заставить его работать.

Пока мой код такой:

tell application "VisualBoyAdvance"
    activate

    tell application "System Events"
        keystroke "k"
    end tell

end tell

Когда я говорю VisualBoyAdvance напрямую, я получаю эту ошибку:

error "VisualBoyAdvance got an error: Can’t get keystroke \"k\"." number -1728 from keystroke "k"

Я пытался сказать VisualBoyAdvance напрямую, и я также пытался использовать key code 40, но я все еще не могу заставить его работать. Как ни странно, это работает:

tell application "VisualBoyAdvance"
    activate

    tell application "System Events"
        keystroke "d" using {command down}
    end tell

end tell

Но это сочетание клавиш, которое отображается в строке меню, поэтому я думаю, что это будет немного по-другому.

Как я могу использовать AppleScript для имитации нажатия клавиш и заставить приложение реагировать на него? Если я не могу использовать AppleScript для этого, что еще я могу использовать?

Ответы [ 3 ]

7 голосов
/ 30 июля 2012

Я думаю, ты почти у цели. Вот кое-что, что я использовал для Сафари; в этом примере я отправляю код ключа 48 (вкладка).

tell application "Safari"
    activate

    tell application "System Events" to tell process "Safari" to key code 48
end tell

AFAICS, это должно быть в значительной степени независимым от поддержки AppleScript в целевом процессе, так как вы просите System Events имитировать нажатие клавиши через Universal Access.

Для получения справки по кодам клавиш см. Это полезное приложение: http://manytricks.com/keycodes/

0 голосов
/ 10 марта 2010

Я ничего не могу приготовить, так как у меня нет этого приложения, но вот несколько вещей, которые можно попробовать

 tell application "VisualBoyAdvance"
    activate
    tell application "System Events"
        tell application process "VisualBoyAdvance"
             try
            keystroke "k"
               on error
                  try
                    keystroke (ASCII character 75)
                   end try
               end try
        end tell
    end tell
 end tell
0 голосов
/ 03 марта 2010

Выбор разработчика - сделать приложение полностью осведомленным о Applescript. Пункты меню приемлемы с точки зрения Finder, но другие параметры пользовательского интерфейса могут или не могут быть. См. UIElementInspector , чтобы проверить это приложение на наличие элементов сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...