密码保护文件夹时陷入循环
Stuck in a loop while password protecting a folder
我想做一个文件夹动作,打开后需要密码才能访问内容,目前代码如下:
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
的时候,明明是需要密码的,而且我输入正确后,window打开一秒就关闭了,需要再次输入密码,并且这种情况一直持续下去。
我想这是因为每次 Myfolder
打开脚本 运行s 并且需要密码,但我该如何解决这个问题?我已经尝试在 open folder "Myfolder"
和 end tell
之后将 login
设置为 false
但这并不意味着 login
每次都设置为 true
脚本是 运行.
如何才能永远停止需要密码的脚本?
您可以尝试这样的操作:
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
属性在脚本运行期间保留,因此 passwordWasGiven
成为是否输入正确密码的开关。
但是拜托,这是一个非常糟糕的 password-protect 文件夹方式。人们可以在 Finder 关闭文件夹之前暂时看到文件夹的内容;人们可以在命令行上轻松访问内容;人们可以阅读脚本来发现密码。 half-a-brain 的任何人都可以进入。如果你想制作一个安全文件夹,请在命令行上使用磁盘工具或 diskutil 并制作一个加密的磁盘映像。这并不比使用文件夹难——你 double-click 打开它,就像打开文件夹一样——但密码是安全的(假设你选择将其保存在钥匙串中)并且加密很强大.
我想做一个文件夹动作,打开后需要密码才能访问内容,目前代码如下:
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
的时候,明明是需要密码的,而且我输入正确后,window打开一秒就关闭了,需要再次输入密码,并且这种情况一直持续下去。
我想这是因为每次 Myfolder
打开脚本 运行s 并且需要密码,但我该如何解决这个问题?我已经尝试在 open folder "Myfolder"
和 end tell
之后将 login
设置为 false
但这并不意味着 login
每次都设置为 true
脚本是 运行.
如何才能永远停止需要密码的脚本?
您可以尝试这样的操作:
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
属性在脚本运行期间保留,因此 passwordWasGiven
成为是否输入正确密码的开关。
但是拜托,这是一个非常糟糕的 password-protect 文件夹方式。人们可以在 Finder 关闭文件夹之前暂时看到文件夹的内容;人们可以在命令行上轻松访问内容;人们可以阅读脚本来发现密码。 half-a-brain 的任何人都可以进入。如果你想制作一个安全文件夹,请在命令行上使用磁盘工具或 diskutil 并制作一个加密的磁盘映像。这并不比使用文件夹难——你 double-click 打开它,就像打开文件夹一样——但密码是安全的(假设你选择将其保存在钥匙串中)并且加密很强大.