AppleScript не работает в окне сохранения приложения - PullRequest
0 голосов
/ 16 марта 2019

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

Но она не работает в другом приложении в окне сохранения.Не могли бы вы помочь.

Вот код, который у меня есть.

tell application "Finder"
    try
        if exists Finder window 1 then
            set thisPath to (the target of the front window) as alias
        else
            set thisPath to (path to desktop)
        end if
    on error
        return
    end try
end tell
set x to my the_perfect_datestring()
if x is not "-ERROR" then
    set fullPath to thisPath & x as text
    tell application "Finder"
        try
            --activate
            if not (exists fullPath) then
                set y to make new folder at thisPath with properties {name:x}
            end if
            activate
        end try
    end tell
end if

on the_perfect_datestring()
    try
        set cd to (the current date)
        set the_year to year of (cd) as number
        set the_month to month of (cd) as number
        set the_day to day of (cd) as number
        if the_month < 10 then set the_month to "0" & the_month
        if the_day < 10 then set the_day to "0" & the_day
        return ((the_year & "-" & the_month & "-" & the_day) as string)
    on error
        return "-ERROR"         

    end try

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

Чтобы работать с диалоговыми окнами сохранения в других приложениях, вам нужно немного изменить рабочий процесс. Диалог сохранения работает с текстом (именем файла / папки), поэтому вы можете создать текстовый сервис для вставки в нужную строку.

Чтобы создать службу, запустите приложение Automator и выберите документ «Служба (быстрое действие)» - рабочий процесс будет иметь настройки, определяющие, какой тип ввода он будет принимать, например:

Workflow receives current text in any application

Далее установите флажок Output replaces selected text - он заменит выделенный текст выводом вашего рабочего процесса.

Перетащите Запустите действие AppleScript в рабочий процесс и полностью замените содержимое по умолчанию на новый обработчик Run и обработчик строки даты, например:

on run {input, parameters}
  set x to the_perfect_datestring()
  if x is not "-ERROR" then return x
end run

on the_perfect_datestring()
  try
    # do your filename stuff
    tell (current date) as «class isot» as string
      return text 1 thru 10
    end tell -- or whatever
  on error
    return "-ERROR"
  end try
end the_perfect_datestring

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

Эквивалентом вашего исходного рабочего процесса с Finder будет создание новой папки и использование службы в выделенном имени «безымянной папки» для ее изменения.

0 голосов
/ 16 марта 2019

Вы не можете получить доступ к настройкам в диалоговом окне «Сохранить» с терминологией Finder AppleScript.

Единственный способ с AppleScript - это системные события и сценарии GUI.Синтаксис сценария сильно зависит от конкретного пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...