Applescript-在系统对话框视图中键入(例如:保存、加载)
我想输入一个系统对话框(就像大多数OSX应用程序用于加载或保存的对话框) 到目前为止,我还不能让这个工作,虽然。。。当保存文件的系统对话框打开时,我尝试运行此操作:Applescript-在系统对话框视图中键入(例如:保存、加载),applescript,Applescript,我想输入一个系统对话框(就像大多数OSX应用程序用于加载或保存的对话框) 到目前为止,我还不能让这个工作,虽然。。。当保存文件的系统对话框打开时,我尝试运行此操作: osascript -e ' tell application "System Events" keystroke "/tmp/test1.log" key code 36 end tell' 当我运行这个;什么也没发生;系统对话框视图保持打开状态,没有输入任何内容。是否还必须按名称指定视图?我确实认为,由
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“此处有您的应用程序名”
)遗憾的是,它不起作用。只要您使用快捷方式调用“保存”对话框,它就可以工作,但是如果您在对话框已启动时在应用程序上跳转,它将无法找到它(我在“保存”窗口中没有看到任何键入的内容)