it-swarm-ru.tech

Отправить код ключа в приложение без предварительной активации?

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

tell application "X"
    activate
    tell application "System Events" to key code 49
end tell
29
devin_s

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

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

Как насчет его отключения?

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

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

0
km6zla

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

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

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

  2. С хуком Windows API некоторого типа вы можете получить контроль над приложением, не активируя его. Я вполне уверен, что если я расскажу об этом, то смогу взять под контроль все что угодно на компьютере.

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

0
SentientCoder

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

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

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