Sun, 14 Sep 2008
フォルダにパスワードをかけて管理する
AppleScriptは書き方にクセがあるので、集中して書かないとすぐ書けなくなるのです。ということで、Folder Actionを使って、フォルダにパスワードロックをかける、というのを書こうと思いたちまして…でわさっそく。
…ところが、フォルダを開けなくする、というのがそもそも上手くいきません。妥協点として、フォルダは開けちゃうけどすぐ閉じちゃうよ、一瞬だし良く見えなかったよね、ね?という感じで、以下のように書いてみました。
on opening folder this_folder
tell application "Finder"
close every Finder window
display dialog "Enter Password." default answer "" buttons {"OK"} default button "OK"
set aPass1 to text returned of result
set aPass2 to "pass" as string
if not aPass1 = aPass2 then
beep
display dialog "Password does not match." buttons {"OK"} default button "OK" with icon stop
--close this_folder
make new Finder window
set target of Finder window 1 to home
set bounds of Finder window 1 to {10, 48, 1671, 893}
set (icon size of icon view options of window 1) to 96
else
make new Finder window
set target of Finder window 1 to this_folder
set bounds of Finder window 1 to {10, 48, 1671, 893}
set (icon size of icon view options of window 1) to 96
end if
end tell
end opening folder
スクリプトがアタッチされたフォルダを開こうとすると、一瞬フォルダは開くけれどすぐ閉じてしまう。パスワードを要求するダイアログが表示され、あらかじめ決められたパスワードと入力されたパスワードが異なっていた場合は、何事もなかったようにホームフォルダを開く。入力されたパスワードが一致していれば、開こうとしたフォルダが開く。ウィンドウのサイズやら何やらは個人的な話しですが、これで目的は達成している…のかな。フォルダを開けなくする方法をご存じの方はお教えください。
Comments
…む、スペースで整形したのが刈り取られてしまう…
on opening folder aFolder
tell application "Finder"
set aParentFolder to container of aFolder
set aBounds to bounds of window 1
--close every Finder window
close Finder window 1
--set visible of processes whose frontmost to false
display dialog "Enter Password." default answer "" buttons {"OK"} default button "OK"
set aPass1 to text returned of result
set aPass2 to "pass" as string
if not aPass1 = aPass2 then
beep
display dialog "Password does not match." buttons {"OK"} default button "OK" with icon stop
make new Finder window
set target of Finder window 1 to aParentFolder
set bounds of Finder window 1 to aBounds
else
make new Finder window
set target of Finder window 1 to aFolder
set bounds of Finder window 1 to aBounds
end if
end tell
end opening folder
Add Comment...
スパム対策のため、一ヶ月を経過したエントリにはコメントを書き込めないのです…後、http:と書くこともできません。