我想在打开我的特定文件夹时运行一个applescript。然后,根据输入,关闭文件夹或保持打开状态。所有这些都无需打开文件夹。所以,基本上:
1)尝试打开文件夹
2) 文件夹打不开,但弹出窗口
3-A)如果用户点击确定文件夹打开
3-B)如果用户单击取消,它只是退出脚本,使文件夹未打开。
我怎样才能做到这一点?记住:文件夹不能在后台打开,只有用户按确定才能打开。帮助?
我想在打开我的特定文件夹时运行一个applescript。然后,根据输入,关闭文件夹或保持打开状态。所有这些都无需打开文件夹。所以,基本上:
1)尝试打开文件夹
2) 文件夹打不开,但弹出窗口
3-A)如果用户点击确定文件夹打开
3-B)如果用户单击取消,它只是退出脚本,使文件夹未打开。
我怎样才能做到这一点?记住:文件夹不能在后台打开,只有用户按确定才能打开。帮助?
对于此任务,您需要使用触发脚本文件的文件夹操作。以下是涉及可能触发脚本的文件夹的事件,以及特殊的相应处理程序。
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
将您的脚本文件保存在本地脚本文件夹的文件夹操作文件夹中。如果该文件夹尚不存在,请自行创建该文件夹。这样做将使您的脚本甚至可以运行。现在,为了使其正常运行,您需要将保存的脚本文件(不是应用程序/应用程序包)附加到您想要的文件夹。去做这个...
完成此操作后,您的脚本就可以开始使用了。
附录:如果您的文件夹包含机密信息,请注意,如 user57368 所述,“使用 AppleScript 可能无法使系统甚至远程安全。”
您需要一个包含文件夹或磁盘映像的应用程序包,而不是普通文件夹。如果您使用加密的磁盘映像,如果不遵循您的首选过程,用户将更难以访问内容,但请注意,当您使用 AppleScript 时,可能无法使系统甚至远程安全。
如果您只想在允许用户读取数据之前提供许可协议或其他静态通知,只需阅读hdiutil
手册页以了解如何创建在安装时提供许可协议的磁盘映像。