我想执行一个文件夹操作,该操作需要密码才能在打开时访问内容,而当前代码如下:
on opening folder
set login to true
if login = true then
tell application "Finder"
close windows
end tell
set passw to display dialog ¬
"Enter your password:" default answer ¬
"" buttons {"Cancel", "Let me in!"} ¬
default button 2 ¬
giving up after 5 with hidden answer
set entered to text returned of passw
if entered = "password" then
tell application "Finder"
open folder "Myfolder"
end tell
end if
end if
end opening folder
但是,打开Myfolder
时,显然需要输入密码,即使我输入正确,窗口也会打开一秒钟然后关闭,要求再次输入密码,然后继续等等。
我认为这是因为每次打开Myfolder
时,脚本都会运行并要求输入密码,但是如何解决此问题?我尝试在login
和false
之后将open folder "Myfolder"
设置为end tell
,但这并不是说login
每次都设置为true
时脚本已运行。
如何永久停止需要密码的脚本?
答案 0 :(得分:0)
您可以尝试以下操作:
<button type='button'></button>
<audio src='https://gldrv.s3.amazonaws.com/av/Florence_and_the_Machine-Dog_%20Days_are_Over.mp3'></audio>
在脚本运行期间会保留属性,因此property passwordWasGiven : false
on opening folder theFolder
if passwordWasGiven is false then
tell application "Finder"
close theFolder
end tell
set passw to display dialog ¬
"Enter your password:" default answer ¬
"" buttons {"Cancel", "Let me in!"} ¬
default button 2 ¬
giving up after 5 with hidden answer
set entered to text returned of passw
if entered = "password" then
set passwordWasGiven to true
tell application "Finder"
open folder theFolder
end tell
end if
else
set passwordWasGiven to false
end if
end opening folder
成为切换是否输入正确密码的开关。
但是,请注意,这是一种对文件夹进行密码保护的糟糕方法。在Finder关闭文件夹之前,人们可以看到该文件夹的内容。人们可以在命令行上轻松访问内容;人们可以阅读脚本来发现密码。精打细算的任何人都可以进入。如果要创建安全文件夹,请在命令行上使用“磁盘工具”或“ diskutil”并制作加密的磁盘映像。这并不比使用文件夹更困难-就像打开文件夹一样,双击它可以打开它-但是密码是安全的(假设您选择将其保存在钥匙串中)并且加密强度很高。