Я знаю, что использование AppleScript не может получить доступ к контенту только что созданного пользователя, поэтому я использую скрипты графического интерфейса. Но я хочу, чтобы Mail.app содержал свою собственную кнопку, которая добавила во вновь созданные файлы, которые я отправляю из моей нужной директории. У меня есть плагин для Mail.app, есть сценарий, который вызывается моей собственной кнопкой. Скрипт творит чудеса сам по себе, но он не работает при вызове из плагина. Что я делаю не так?AppleScript творит чудеса самостоятельно, но не работает при вызове из плагина
ошибка
{
NSAppleScriptErrorAppName = "System Events";
NSAppleScriptErrorBriefMessage = "System Events get error: Can not catch window 1 of process "Mail". Wrong index.";
NSAppleScriptErrorMessage = "System Events get error: Can not catch window 1 of process "Mail". Wrong index.";
NSAppleScriptErrorNumber = "-1719";
NSAppleScriptErrorRange = "NSRange: {0, 0}";
}
и сценарий
property theMessage : ""
property allMessages : ""
property myPath : ""
property mySubfolder : "prettyAttachment"
tell application "AppleScript Utility"
set GUI Scripting enabled to true
end tell
tell application "Mail"
try
set allMessages to outgoing messages
set theMessage to front outgoing message
end try
if theMessage is not equal to "" then
tell application "Finder"
activate
set myPath to quoted form of POSIX path of ((path to downloads folder as string) & mySubfolder)
set shellScriptText to "open " & myPath
do shell script shellScriptText
tell application "System Events"
keystroke "a" using command down
keystroke "c" using command down
keystroke "h" using command down
end tell
end tell
activate --mail.app
tell application "System Events"
tell process "Mail"
--?set visible to true
set allUI to every UI element of front window
end tell
repeat with anUI in allUI --as list
set theRole to role of anUI
if theRole is equal to "AXScrollArea" then
set allSubUi to UI elements of anUI
if (count of allSubUi) is equal to 2 then
--set focused of anUI to true
set value of attribute "AXFocused" of anUI to true
tell application "System Events"
keystroke "v" using command down
return true
end tell
end if
end if
end repeat
end tell
end if
end tell
Таким образом, для тестирования вы можете добавить несколько файлов в prettyAttachment
папку в папке Download -> Открыть Mail.app и создать сообщение -> start script
Но почему не работает скрипт в комплекте xCode? С уважением и надеждой на помощь.
EDIT1 также см Not able to Execute AppleScript within "Mail" application