AppleScript在应用程序保存窗口中不起作用

时间:2019-03-16 11:49:53

标签: applescript

我有一个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 :(得分:0)

您无法使用Finder AppleScript术语访问“保存”对话框中的设置。

使用AppleScript的唯一方法是系统事件和GUI脚本。脚本语法在很大程度上取决于特定的UI。

答案 1 :(得分:0)

要在其他应用程序中使用保存对话框,您需要稍作更改。保存对话框使用文本(文件/文件夹名称),因此您可以创建文本服务以粘贴到所需的字符串中。

要创建服务,请启动Automator应用程序并选择“服务(快速操作)”文档-工作流将具有确定其接受哪种输入的设置,例如:

Workflow receives current text in any application

下一步,选中Output replaces selected text框-这会将选定的文本替换为工作流的输出。

Run 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与原始工作流程等效的是创建一个新文件夹,并使用突出显示的“无标题文件夹”名称上的服务来对其进行更改。