2013-09-05 2 views
2

Я пишу applescript, который взаимодействует с Evernote для Mac, используя команду (в Evernote Suite в словаре Evernote), называемую «найти заметки». Вот мой сценарий:Applescript дает ошибку, используя Evernote's «find notes» verb, когда приложение не открыто

tell application "Evernote" 
set myNotes to find notes ("intitle:Title") 
end tell 

Это прекрасно работает, если я запустить сценарий, когда Evernote уже открыт, но если Evernote не открыт, когда я запускаю скрипт, дает мне ошибку: «Ожидаемый конец строки, но найден идентификатор. " Выделено слово «примечания» во второй строке.

Это ведет себя так же, независимо от того, запускаю ли я его из редактора AppleScript или как osascript оболочки.

Кажется, что синтаксический анализ «найти» как полный глагол, а не только часть глагола «найти заметки». Но если Evernote открыт, тогда он распознает полный глагол и работает правильно.

Есть ли способ сделать эту работу скриптом (не скомпилированным), работающим в среде, где Evernote установлен, но может быть или не быть запущен?

ответ

3

Я считаю, что это происходит потому, что, когда вы не даете конкретное имя, это соответствуя (нормально-бег) EvernoteHelper приложение вместо этого.

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

Вы можете обнаружить, что с помощью идентификатора пакета «com.evernote.Evernote» вместо жёстко прописанных путей к приложению работает, тоже:

tell application id "com.evernote.Evernote" 

(Примечание «ИД» часть.)

+0

Спасибо за объяснение! И использование идентификатора связки, кажется, работает нормально. – Robert

0

Если кто-то еще сталкивается с одной и той же проблемой, кажется, исправить это, если я укажу полный путь к приложению, а не только имя. Итак:

tell application "/Applications/Evernote.app" 

 Смежные вопросы

  • Нет связанных вопросов^_^