2015-03-16 4 views
0

У меня есть приложение, и я могу сделать следующую команду (я знаю это, потому что я гугл для него):изучает имеющиеся команды в программе AppleScript

tell app "TextMate" to reload bundles 

То, что я бы очень хотел, чтобы быть в состоянии задать программу «TextMate»:

tell app "TextMate" to list all commands 

и он перечислить все, что я могу попросить его сделать:

... 'reload bundles', 'exit', 'open files'... 

есть ли способ сделать это с помощью applescript?

ответ

2

Способ поиска всех команд приложения - открыть словарь в редакторе скриптов. Обычно «Open Dictionary ...» в меню «Файл» или отбрасывать приложение в редактор сценариев.

[EDIT]

Для приложений, которые имеют поддержку AppleScript, вы можете на самом деле сценарий открытия самого приложения с редактором сценариев, а-ля:

set pathToApp to (choose file of type "APPL") 
tell application "Script Editor" 
open pathToApp 
end tell 

НО это будет проблематично с непривилегированное приложение. Вы получите сообщение об ошибке, но редактор сценариев фактически откроет часть приложения (и он будет медленным), а затем предоставит вам непригодный документ. Невозможно поймать эту ошибку. Если вы используете редактор Улыбки сценария, вы можете использовать этот метод ...

set p to (choose file of type "APPL") 
try 
    OpenDictionary(alias (p as string)) 
on error e 

end try 

..., чтобы открыть словарь приложения, и если он не работает (если приложение не имеет словарь), она возвращает ошибку, но ничего другого (но не делать снова, вы не можете поймать ошибку и не иметь его жалуются, без взлома Улыбнись)

[EDIT 2]

отверстие кролика, чтобы спуститься, пытается Системные события или Finder проверить логическое значение has scripting terminology свойства процесса, но я не рекомендую его, потому что я не знаю «Это было надежным.

[EDIT 3]

Ach! Я знал, что есть другой метод, но забыл, что это было. Как @ mklement0 указывает (спасибо), вы можете сделать это, чтобы проверить скрипт-на способность приложения до открытия приложения в редакторе сценариев:

set pathToApp to (choose file of type "APPL") as text 
set isScriptable to false 
try 
    class of application pathToApp 
    -- only AppleScriptable applications have a class property 
    set isScriptable to true 
end try 

isScriptable 
+0

ой хороший! есть ли способ программно сделать «открытый словарь»? – zcaudate

+0

Кроме того, я посмотрел на словарь текстового мата, и не все команды там. единственный метод в нем - 'getUrl' – zcaudate

+0

Hi @zcaudate. Извините за задержку. Если память обслуживается, TextMate beta 2 практически не имеет поддержки скриптов, тогда как версия версии 1.5 довольно обширна. Но я бы порекомендовал Tex-Edit Plus (если вы хотите отформатированный текст) или TextWrangler. Оба они имеют отличную поддержку AS. – CRGreen

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