如何在打开文件夹时运行脚本?

时间:2012-06-23 00:29:15

标签: macos osx-lion applescript directory finder

我希望在打开我的特定文件夹时运行AppleScript。然后,根据输入,关闭文件夹或保持打开状态。所有这一切都没有打开文件夹。所以,基本上:

1)尝试打开文件夹

2)文件夹无法打开,但弹出窗口

3-A)如果用户点击确定文件夹打开

3-B)如果用户点击取消,它就会退出脚本,让文件夹保持未打开状态。

我该怎么做?请记住:文件夹无法在后台打开,只有在用户按下OK时才能打开。帮助

2 个答案:

答案 0 :(得分:1)

对于此任务,您将需要使用触发脚本文件的“文件夹操作”。以下是涉及可触发脚本的文件夹的事件,以及特殊的相应处理程序。

  • 打开文件夹 - on opening folder window for this_folder
  • 文件夹已关闭 - on closing folder window for this_folder
  • 将一个或多个项目添加到文件夹on adding folder items to this_folder after receiving these_items
  • 从文件夹中删除一个或多个项目 - on removing folder items from this_folder after losing these_itmes
  • 移动文件夹窗口 - on moving folder window for this_folder

第一个项目是你在这种情况下将要关注的内容。正如子弹所暗示的那样,只有文件夹实际打开时才会触发脚本。 但是,只需在脚本的最开头添加此行即可解决此问题:

tell application "Finder" to close first window whose target is this_folder

以下是完整的脚本:

on opening folder window for this_folder
    tell application "Finder"
        close first window whose target is this_folder
        -- the window may appear briefly, but at least you've accomplished your goal

        display dialog "Open folder " quoted form of the name of this_folder & "?" buttons{"Yes,"No"} default button 1 cancel button 2
        -- pressing the "No" button is exactly the same as pressing the "Cancel" button on a regular dialog, and the script terminates

        make new Finder window with properties {target:this_folder}
    end tell
end opening folder window

在您的本地脚本文件夹的文件夹操作文件中保存您的脚本文件。如果文件夹尚不存在,请自行创建文件夹。这样做将允许您的脚本甚至运行。现在,为了使其正常运行,您需要将保存的脚本文件 - 应用程序/应用程序包 - 附加到所需的文件夹。要做到这一点......

  1. 右键单击所需的文件夹
  2. 点击底部的“文件夹操作设置”菜单项
  3. 在显示的对话框中找到已保存的脚本
  4. 点击“附加”
  5. 关闭“文件夹操作设置”窗口
  6. 完成此操作后,您的脚本就可以运行了。

    附录:如果您的文件夹包含机密信息,请注意,如user57368所述,“可能无法使用AppleScript远程保护系统。”

答案 1 :(得分:0)

您需要包含文件夹或磁盘映像的应用程序包,而不是普通文件夹。如果您使用加密的磁盘映像,则用户在不遵循您的首选过程的情况下访问内容将更加困难,但请注意,当您使用AppleScript时,可能无法使系统远程安全。

如果您只想在允许用户读取数据之前提交许可协议或其他静态通知,请阅读hdiutil手册页,了解如何创建在安装时提供许可协议的磁盘映像。