AppleScriptでFinderにApple Eventsを送信する権限がありません。(-1743)

Illustrator(Mac)ドキュメントの配置画像を収集するAppleScript をしようすると、


FinderにApple Eventsを送信する権限がありません。(-1743)のエラーがでます。


どなたか、わかる方いますか?


property myTag : "stRef:filePath" --XMPのリンクファイルタグ


global outputList




on open theFiles


repeat with afile in theFiles


my getCopyFile(afile)


end repeat


activate


display dialog "終了しました" buttons {"はい"} default button 1 with icon 1 giving up after 10


return


end open




--sedでXMPメタデータを読み込む


to getCopyFile(afile)


set input_file to (quoted form of POSIX path of contents of afile) as Unicode text --Unicode textに変換


set outputList to do shell script "echo | sed -n -e 's/^.*<" & myTag & ">\\(.*\\)<\\/" & myTag & ">/\\1/p' " & input_file



--&エラー処理


set outputList to my replaceText(outputList, "&amp;", "&")



--書き出し


my kakidashi()



end getCopyFile






--&エラー処理


to replaceText(theText, serchStr, replaceStr)


set tmp to AppleScript's text item delimiters


set AppleScript's text item delimiters to serchStr


set theList to every text item of theText


set AppleScript's text item delimiters to replaceStr


set theText to theList as string


set AppleScript's text item delimiters to tmp


return theText


end replaceText




--書き出し


to kakidashi()


tell application "Finder"


set aText to (outputList & return)


set aTextFile to open for access ((desktop as text) & "test.txt") with write permission


set aEOF to get eof of aTextFile


try


write aText starting at (aEOF + 1) to aTextFile


on error aErrorText


display dialog aErrorText


end try


close access aTextFile


end tell


end kakidashi




iMac 21.5″ 4K, macOS 10.13

投稿日 2023/01/12 23:34

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2023/01/13 01:53

システム環境設定の「セキュリティとプライバシー > プライバシー」で当該アプレットの許可設定を確認してみてはどうでしょうか?


で、下図のように、Finder が OFF になっていたら ON にしてみるとか。


あと、open for access などは StandardAdditions にあるコマンドですから Finder を介す必要はありません。なので、tell application "Finder" ... は必要ないと思います。


Finder を介さなければ上記の設定 (Finder を許可) も不要となると思います。その場合は保存先のパスのところを適宜書き直すと良いでしょう。


類似の質問

返信: 6
スレッドに付いたマーク ランキングトップの返信

2023/01/13 01:53 amagaeru_gekota への返信

システム環境設定の「セキュリティとプライバシー > プライバシー」で当該アプレットの許可設定を確認してみてはどうでしょうか?


で、下図のように、Finder が OFF になっていたら ON にしてみるとか。


あと、open for access などは StandardAdditions にあるコマンドですから Finder を介す必要はありません。なので、tell application "Finder" ... は必要ないと思います。


Finder を介さなければ上記の設定 (Finder を許可) も不要となると思います。その場合は保存先のパスのところを適宜書き直すと良いでしょう。


2023/01/15 18:03 amagaeru_gekota への返信

アプリケーションをコピーで追加していました。
セキュリティとプライバシー > プライバシー>オートメーションになかなかアプリが表示されなかったのですが、
アプリケーションをスクリプトエディタで作り直したことで表示されました。


そういうことでしたか。解決して良かったですね。


ところで、スクリプトの内容ですが、次の点を踏まえて

  • AppleScript の変数をシェルスクリプト内に放り込むのは危険なので (任意のコードが実行できてしまうので) やめる
  • as Unicode text は不要なので使わない
  • シェルスクリプトの誤りを修正する
  • 文字列の置き換えを sed で行う
  • ファイルへの追加書き込みをシェルスクリプトで行う


こんな感じにしても良いかもしれません。(当方は Illustrator ドキュメントを持ってないので試すことはできてません)


on open argv
    set out_f to (path to desktop folder as text) & "test.txt"
    repeat with in_f in argv
        try
            main(in_f, out_f)
        on error errs number errn
            display dialog errs
        end try
    end repeat
    display dialog "終了しました" buttons {"はい"} default button 1 with icon 1 giving up after 10
end open

on main(in_f, out_f)
    set in_f to in_f's POSIX path's quoted form
    set out_f to out_f's POSIX path's quoted form
    --
    do shell script "zsh -s <<'EOF' - " & in_f & " " & out_f & "
sed -nE 's|^.*<stRef:filePath>(.*)</stRef:filePath>|\\1|p' \"${1}\" |
sed -E 's|&amp;|\\&|g' >> \"${2}\"
EOF" without altering line endings
end main


2023/01/15 16:58 Hiro__S への返信

アプリケーションをコピーで追加していました。

セキュリティとプライバシー > プライバシー>オートメーションになかなかアプリが表示されなかったのですが、

アプリケーションをスクリプトエディタで作り直したことで表示されました。


問題解決しました。ありがとうございました。

2023/01/16 01:48 amagaeru_gekota への返信

こちらのスクリプトをアプリとして保存して使用する形で良いのでしょうか?
その場合もアプリのアイコンにイラストレーターのファイルをドロップして使用すす形でしょうか?


そのとおりです。


冒頭のコードと同じ挙動となるハズなのですがダメでしたか...。当方は Illustrator を持っておらず検証ができないため、コードの修正はできません。申し訳ありませんが、ボツにしてください。


お作りになったアプレットを使用する際は、コードの一行目 (property myTag : "stRef:filePath") を書き換えないでください。そうすれば事故りません。(ここにヤバイ文字列を入れるとホームフォルダ内のデータを全消去とかできてしまいます)


# 引用部分を訂正しました

2023/01/16 00:43 Hiro__S への返信

返信ありがとうございます。

スクリプトに関して素人なものでうまく説明できないです。


こちらのスクリプトをアプリとして保存して使用する形で良いのでしょうか?

その場合もアプリのアイコンにイラストレーターのファイルをドロップして使用すす形でしょうか?


上記の方法で動作を確認したのですが、デスクトップにテキストファイルができましたが、

リンクファイルのパスが書き出されなかったようでした。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

AppleScriptでFinderにApple Eventsを送信する権限がありません。(-1743)

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。