Applescript Tell Приложение, запущенное конкретным пользователем - PullRequest
2 голосов
/ 02 июня 2011

Я использую два Skype на одном компьютере: один запускается нормально, а другой запускается в терминале под другой учетной записью пользователя B.

Затем я хочу использовать приложение Applescript to Tell "Skype"(который запускается учетной записью B), чтобы сделать что-то.Как мне указать экземпляр Skype, который запускается учетной записью B в Applescript?

Большое спасибо!

miu

Ответы [ 3 ]

1 голос
/ 06 июня 2011

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

Как только это будет сделано, вы должныв состоянии сделать что-то вроде:

tell application "Skype" of machine "eppc://userB@127.0.0.1"
 -- whatever
end tell

userB - это, конечно, имя пользователя B, а 127.0.0.1 означает «этот компьютер» или, точнее, «локальный хост».

0 голосов
/ 03 июня 2011

Я решил решить эту проблему, создав две копии Skype.app и переименовав новую в «Skype2.app». Skpye.app запускается пользователем A и Skype2.app пользователем B (через терминал). Затем в Applescript

tell application "Skype"
 -- do something for user A
end tell

tell application "Skype2"
 -- do something else for user B
end tell
0 голосов
/ 02 июня 2011

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

tell application id "com.apple.TextEdit" to activate

Имея это в виду, ваши 2 запущенные версии скайпа должны будут иметь разные идентификаторы комплекта, чтобы вы могли выбирать их по отдельности. Сейчас это не так, но вы можете это сделать. Просто скопируйте приложение Skype (сделайте копию). Затем откройте содержимое пакета копии, откройте там файл «info.plist», найдите ключ идентификатора пакета и измените его на другое. Теперь у вас есть 2 версии скайпа с разными идентификаторами пакетов, что означает, что вы можете выбирать их по отдельности.

Я проверил это с помощью TextEdit. Я сделал дубликат и установил его идентификатор пакета в "com.apple.myTextEdit". Я открыл оба приложения и мог ориентироваться на них по отдельности. Таким образом, пользователь B может использовать «com.apple.myTextEdit», а обычный пользователь - «com.apple.TextEdit» ... или наоборот.

Это не идеальное решение, но оно будет работать.

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