Applescript-在系统对话框视图中键入(例如:保存、加载)

Applescript-在系统对话框视图中键入(例如:保存、加载),applescript,Applescript,我想输入一个系统对话框(就像大多数OSX应用程序用于加载或保存的对话框) 到目前为止,我还不能让这个工作,虽然。。。当保存文件的系统对话框打开时,我尝试运行此操作: osascript -e ' tell application "System Events" keystroke "/tmp/test1.log" key code 36 end tell' 当我运行这个;什么也没发生;系统对话框视图保持打开状态,没有输入任何内容。是否还必须按名称指定视图?我确实认为,由

我想输入一个系统对话框(就像大多数OSX应用程序用于加载或保存的对话框)

到目前为止,我还不能让这个工作,虽然。。。当保存文件的系统对话框打开时,我尝试运行此操作:

osascript -e ' tell application "System Events"
    keystroke "/tmp/test1.log"
    key code 36
    end tell'

当我运行这个;什么也没发生;系统对话框视图保持打开状态,没有输入任何内容。是否还必须按名称指定视图?我确实认为,由于应用程序具有焦点,并且系统对话框具有焦点,因此我可以直接键入它。

以下是一个适用于我的示例脚本:

tell application "Safari" to activate
tell application "System Events"
    tell process "Safari"
        keystroke "s" using {command down}
        delay 2
        keystroke "new file name"
        key code 36
    end tell
end tell
注意调用“save”和实际键入之间的延迟——在开始键入之前,需要确保对话框完全打开。由于脚本是在保存时激活的,因此您可以跳过我的示例中的
击键“s”
步骤,直接转到
延迟

另请注意,系统事件正在通知进程执行击键。您需要确保脚本中针对的是正确的流程

最后,您是否已将系统可访问性设置配置为允许这种脚本式交互

要启用应用程序的可访问性控制,请执行以下操作:

  • 启动系统首选项,然后单击安全和隐私
  • 单击隐私选项卡
  • 单击可访问性
  • 单击添加按钮(+)
  • 选择一个应用程序并单击“打开”(在本例中为“脚本编辑器”)
  • 选中应用程序左侧的复选框

  • 谢谢你的回复。如果在Safari上调用“保存系统”对话框时启动脚本,这是否也有效?因为我在做这件事时遇到了问题;我的脚本不是完全由Applescript驱动的,因此我可能会在Safari(或iTunes等)已打开且屏幕上已显示系统对话框屏幕以进行保存时运行脚本。您当然可以使用Applescript进行保存,但您可能需要根据您的情况对其进行调整(例如,
    告诉process“此处有您的应用程序名”
    )遗憾的是,它不起作用。只要您使用快捷方式调用“保存”对话框,它就可以工作,但是如果您在对话框已启动时在应用程序上跳转,它将无法找到它(我在“保存”窗口中没有看到任何键入的内容)