Подтвердить что ты не робот

Отправить key code в приложение, не активируя его в первую очередь?

Я пытаюсь отправить ключ пробела в приложение, не активируя его в первую очередь. Следующий код почти делает то, что я хочу, но сначала приносит приложение на передний план.

tell application "X"
    activate
    tell application "System Events" to key code 49
end tell
4b9b3361

Ответ 1

Я не думаю, что вы можете отправить нажатие клавиши в неактивное приложение, но вы можете скрыть приложение сразу после его активации и выполнения кода для него. Это, однако, заставляет приложение кратковременно мигать, пока оно не скрывается.

tell application "System Events"
    tell application "X" to activate
    key code 49
    set visible of process "X" to false
end tell

Ответ 2

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

Однако в зависимости от приложения может быть возможно использовать некоторые функции Applescript в API приложения для отправки различных входов в приложение без необходимости его активации в первую очередь. Возьмите API сообщений, например:

tell application "Messages"
      set theBuddy to buddy "[email protected]" of service "iMessage"
      send "Hi there" to theBuddy
end tell

Ответ 3

Как отключить его после?

activate application "X"
tell application "System Events" to key code 49
activate me

Ответ 4

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

Ответ 5

Есть курсы исследования.

  • Если приложение является тем, которое вы разработали самостоятельно, у вас есть следующие возможности:

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

  • С помощью какого-либо типа API-интерфейса Windows вы можете получить контроль над приложением, не активируя его. Я совершенно уверен, что я думаю, что могу взять под контроль что-либо на компьютере.

В простых терминах подумайте, что это не обязательно, нужно нажать клавишу, которую вы отправляете, вы просто хотите научить ее что-то делать. Существует множество вариантов интерфейса Marshalling, Interops, OLE, DDE, похоже, что я появился на этом сайте как раз вовремя!