Мне не удается найти, как использовать выделенный текст в качестве переменной для AppleScript и Automator.AppleScript/Automator: использовать выделенный текст как переменную
Любые идеи?
Мне не удается найти, как использовать выделенный текст в качестве переменной для AppleScript и Automator.AppleScript/Automator: использовать выделенный текст как переменную
Любые идеи?
Чтобы увидеть, как это работает, попробуйте это очень простой сервис Automator:
Создать Услуги в Automator и выберите Текст и Каждое приложение в качестве входных данных.
Первый шаг рабочего процесса: Выполнение Applescript.
Параметр Applescript input
содержит выделенный текст.
Установите Applescript в
on run {input, parameters}
display dialog (input as text)
return input
end run
После сохранения, вы должны это действие в контекстном меню, когда вы выбрали текст.
Возможно, именование отличается, я не знаю английских описаний. Но я надеюсь, что это хорошая отправная точка для вас.
Весело, Michael/Hamburg
Для Applescript, он работает с другими приложениями. Чтобы получить выделенный текст переднего окна в приложении, Applescript должен использовать язык/синтаксис, который это приложение понимает/отвечает. Для очень сценарных, на основе текста документа приложений, есть много сходства, ищет что-то вроде:
tell app "xyz" to get selection of document 1
Однако, на самом деле нет никакого стандарта. Многие приложения не имеют объекта «выбора текста» в своем скриптовом словаре, поэтому вам придется делать всевозможные обходные пути. Смотрите следующие примеры:
tell application "Safari" to set selectedText to (do JavaScript "(''+getSelection())" in document 1)
tell application "System Events" to tell application process "TextEdit" to tell attribute "AXSelectedText" of text area 1 of scroll area 1 of window 1 to set selectedText to its value
tell application "Microsoft Word" to set selectedText to content of text object of selection
Вы можете также сценарий «Системные события», чтобы имитировать нажатие клавиши командной-с, чтобы скопировать текст.
tell application "System Events" to keystroke "c" using {command down}
delay 1
set selectedText to the clipboard
Если вам нужна более конкретная помощь, разместите свой код и укажите, с каким приложением вы работаете. Если это не приложение для сценариев, вам придется использовать последний метод, вызывающий системные события. Или, возможно, вы можете использовать службу OS X, о которой вы также спрашивали.
При создании службы в Automator вы создаете новый рабочий процесс типа Service. Затем просто убедитесь, что в верхней части окна указано: «Служба получает выбранные text
». Затем вы можете использовать действия Automator для взаимодействия с выбранным текстом, который передается в действия, которые следуют. Не все программы совместимы с Сервисами, к сожалению.