5

メニューリストを表示し、ユーザーがメニュー項目などを選択できるようにするapplescriptがあります。それはそれ自体で正常に動作します。そして今、私はPythonでそれを実行しようとしています. ユーザーの操作は許可されていません。(-1713) エラー。

私はオンラインで見ました。私は次のことを試しました:

  1. 同じapplescriptに実行機能を追加するので、実行にメインを追加するだけです

    on run tell アプリケーション “AppleScript Runner” main() end tell end run

  2. 上記を python import os def main(): os.system ('osascript -e "tell application "ApplesScript Runner" do script /Users/eee/applescript/iTune.scpt end tell"') で実行しようとしました

    if name == ' main ': main() どちらの方法も機能しません。誰かがこれを正しく行う方法を教えてもらえますか?

4

2 に答える 2

14

それはよくある間違いです。シェルから OSAScript を使用してスクリプトを実行するときは、アプリケーションに「表示ダイアログ」や「リスト ダイアログの選択」など、ユーザーの操作が必要なものを表示するように指示する必要があります。OSAScript では表示できないので、Finder などのアプリに表示するように指示してください。このようなコードを使用して...

tell application "Finder"
    activate
    display dialog "Now it works!"
end tell

または、コマンドラインから、これが機能しないことに注意してください...

osascript -e 'display dialog "Now it will not work."'

しかし、これは Finder に指示しているのでうまくいきます...

osascript -e 'tell application "Finder"' -e 'activate' -e 'display dialog "Now it works!"' -e 'end tell'

つまり、iTune.scpt のどこかにダイアログが表示されているということです。そのスクリプトでは、iTunes または Finder にそれらを表示するように指示するだけです。

于 2012-11-21T00:32:17.323 に答える
0

LSBackgroundOnly = YES私の問題は、次のような UI を表示する AppleScript を実行しようとするセットのアプリでした。display dialog ...

エラー Domain=NSPOSIXErrorDomain Code=2 「そのようなファイルまたはディレクトリはありません」

AppleScript.scpt: 実行エラー: ユーザーの操作は許可されていません。(-1713)

tell application "Finder" ...他の回答に示されているように、またはなどを使用すると機能します。

または、LSBackgroundOnlyキーを削除して、別のアプリケーションに通知せずに UI AppleScript を有効にします。

LSUIElement同様のモード (ドック アイコンやメニュー バーなどはありません) を提示しますが、UI AppleScript の起動を許可します。

于 2018-11-09T00:16:29.740 に答える