Какова функциональность, которую вы пытаетесь достичь здесь? Это весь сценарий? Вы хотите запустить last.fm, а затем, в идеале, закрыть окно?
tell application "System Events" to tell process
не работает, потому что это вводит в заблуждение, - это не фактически направлять нажатие клавиши для конкретного приложения, нажатие клавиши идет туда, куда он идти будет, когда он ударил независимо от «сказать процесс» заявление, что раздражает.
Я не использую last.fm, но любой из этих работ для меня:
tell application "TextEdit"
launch
activate
end tell
delay 0.1
tell application "System Events"
keystroke "w" using command down
end tell
или
tell application "TextEdit"
launch
activate
end tell
delay 0.1
tell application "System Events"
click menu item "Close" of menu 1 of menu bar item "File" of menu bar 1
end tell
Обратите внимание, что если вы планируете запустить скрипт из ключа команды или меню сценария и не хотите, чтобы он украл фокус на last.fm, вы можете запустить его, закрыть окно (или скрыть его), а затем вернуть вас в переднее приложение при запуске скрипта:
set appPath to the path to the frontmost application
tell application "Finder"
set appName to the name of file appPath
set appName to text 1 thru ((offset of "." in appName) - 1) of appName
end tell
tell application "TextEdit"
launch
activate
end tell
delay 0.1
tell application "System Events"
keystroke "w" using command down
end tell
tell application appName to activate
На моей машине имя этого приложения/процесса - «Last.fm Scrobbler». Может быть, ваши проблемы вызваны неправильным названием? Просто догадаться ... – matt
@matt Я не думаю, что у меня есть неправильное имя, потому что если Last.fm не работает, он действительно открывает last.fm (это то, что я хочу) –
Имя приложения (для запуска) и имя процесса (для вождения с помощью графического интерфейса пользователя через System Events) - это разные вещи. Посмотрите в Activity Monitor, и вы увидите, что он называется «Last.fm Scrobbler». Не могли бы вы просто попробовать и посмотреть, не изменилось ли это? – matt