問題タブ [osascript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python と launchd からの osascript の起動
これが私の小さなプログラムの要点です
特定のディレクトリに新しいファイル (ムービー ファイル) があるかどうかを確認し、それに応じて sqlite3 データベースを更新し、処理するファイルをキューに入れる 1 つの Python スクリプト。launchctl で毎分実行します。
HandBrake コマンド ライン インターフェイスを使用してファイルを変換する実際の処理を行う別の python スクリプト。また、launchctl で毎分実行されます。
その 2 番目のスクリプトでは、変換が完了したら、特定のメタデータを使用してファイルを iTunes にインポートする AppleScript を開始します。
そのため、ディレクトリ内の新しいムービー ファイル -> ファイルがキューに登録されます -> ファイルが変換されます -> ファイルが iTunes にインポートされます。
私が抱えている問題は、applescript の部分にあります。2 つ目の Python スクリプト (変換してからインポートするスクリプト) をターミナルから実行すると、すべてがスムーズに実行されます。ファイルが変換され、applescript がそれを iTunes にインポートします。しかし、スクリプトを起動しているのがlaunchctlの場合、applescriptの部分をスキップしているようです。
これは、Pythonのapplescriptのビットです
そしてAppleScript(簡単にするために一部を削除しました)
subprocess.call(cmd)、os.system(cmd)、および subprocess.Popen(cmd) を使用してみました。
問題は、まさにその python スクリプトが launchctl で起動されたときに、python から osascript を起動できないことです。
誰にも説明や回避策がありますか?
ありがとうございました
macos - AppleScript を使用して Caps Lock キーを Ctrl キーに切り替える方法
Applescript で正しいボタンを選択する方法がわかりません。私はvimを学び始めており、Caps Lock キーを Caps Lock と Ctrl の間で切り替えられるようにしたいと考えています。完了する必要がある手順をマークしました。
(この投稿) を見つけましたが、少しハッキーなようです。たぶんそれは本来あるべき姿ですが、システム設定を示しています。fnキーを切り替えてシームレスに動作する(このコード)とは異なり、使用するたびにウィンドウが表示されます。
誰かアドバイスをいただけますか?
これが私のコードです:
修飾キーのスクリーンショットは次のとおりです。
ここにリンクの説明を入力してください http://imageshack.us/a/img833/474/o5co.png
macos - OS X 10.9.2 では、コマンド: osascript -e 'tell application "System Events" to keystroke "Honk" は、入力されたすべての文字列の末尾に 'a' を追加します。
ええと、つまり、タイトルがほとんどすべてを物語っています。私は渡すためにPythonを使用しています
10.9端末に。osascript を使用してキーストロークをアプリケーションに渡します。10.8 以前では、このコマンドは完全に機能していました。しかし、今はアプリケーションに入力するために 10.9 でそれを使用しており、すべてのタイプに「a」が追加されています。
たとえば、私のプログラムは挿入モードで crontab を開始します。
しかし、上記の osascript コマンドを使用すると、
これは、次のようなコマンドでも発生します
(キーコード 52 はエンター キーですが、奇妙なことにキーコード 53 (エスケープ キー) では発生しないようです)
osascript を介してバックスペースを渡すことはできますが、余分な 'a' がコマンドの開始などの問題を引き起こしています。この問題を回避、解決、または回避するにはどうすればよいですか? 私は広範囲にグーグルで検索しましたが、10.9 で動作する代替コマンドが見つかりません。
python - osascriptを使用してApplescriptにファイルパス変数を渡すPython
Python から n Applescript にファイル パスを渡そうとしていますが、それを実現する方法がわかりません。以下のコードは、1 つまたは複数のファイルを開くように促し、オーディオ チャネルを再割り当てし、保存して閉じる動作中の Applescript コードを示しています。ファイルまたはファイルを要求する代わりに、ファイル パスを osascript Applescript に渡したいのですが、既に引数を設定していますが、それを機能させる方法がわかりません。
c++ - NSAppleScript として実行できる if else 条件で osascript を生成する方法
アプリケーションを起動し、applescript を使用してファイルを開こうとしています。Apple Script Editorからできました。これは私が書いたスクリプトです:
アプリケーションがバックグラウンドで実行されている場合、起動だけではフォアグラウンド (スクリプト エディターの上) に移動できませんでした。また、アプリケーションが実行されていない場合、アクティブ化はスプラッシュ スクリーンを表示できませんでした。そのため、ボットの起動とアクティブ化を使用しました。
スクリプトは正常に動作しています。しかし、私の C++ プログラムにはスクリプトが必要です。アプリのパスとファイルのパスは実行時に決定されます。だから私はNSAppleScriptとしてスクリプトを生成し、スクリプトを実行していました。生成された NSApplescript は次のようになります。
上記のコードはすべて 1 行にまとめられていますが、読みやすくするために分割しています。というエラーが表示されますvariable e is not defined
。これは実行されていません。
このスクリプトを生成するために使用するコードは次のとおりです。
user309603 が提案したように、-e の前にスペースを追加しました。今、私は新しいエラーを受け取ります:
エラー "266:266: 構文エラー: 行末などが予想されますが、スクリプトの終わりが見つかりました。(-2741)" 番号 1
bash - スペースを含むbash変数を使用するosascript
Bash を使用osascript
して、Apple Script 経由で通知センター (Mac OS X) にメッセージを表示しています。テキスト変数を Bash からスクリプトに渡そうとしています。スペースのない変数の場合、これは問題なく機能しますが、スペースのある変数の場合は機能しません:
定義する
と使用
動作しますが、使用しています
収量
何を変更する必要がありますか (私はこれが初めてです)? ありがとう!
macos - 特定のアプリケーションが終了するまで待ってから、別のアプリケーションを起動します
OS XI では、完全な .app パスで指定された特定のアプリケーションが終了するまで待機する osascript コマンドを実行してから、.app などを使用して別のアプリケーションを開始します/usr/bin/open -n /Applications/MyApp.app
。
アプリケーションが終了するまで待機するにはどうすればよいですか?
python - bash -c で osascript を実行する
Sublime Text プラグイン (Python) に取り組んでおり、その一部であるシェル スクリプトがいくつかあります。Package Control は圧縮されたパッケージを提供するため、これらのスクリプトは zip 内からファイルとして実行できないため、文字列として保存し、subprocess.Popen および bash -c で実行しています。スクリプトの Mac バージョンには osascript が必要ですが、文字列からの実行に問題があります。スクリプトの osascript 部分は次のとおりです (すべて正常に動作します)。
私はこれまでのところ、最初のactivate
ステートメントを正常に実装しましosascript -e 'tell application "Terminal" to tell window 1 to activate';
たが、2 番目のステートメントは、主にすべての引用符が原因で、多くの問題を引き起こしています。文字列に Python"""triple quote"""
形式を使用しています。私が得た最も遠いものは次のようなものです
しかし、「83:87: 構文エラー: この「」の後に識別子を指定することはできません」のようなメッセージが表示されます。(-2740)" およびその他の同様に非固有のエラー。 bash -c で使用するためにその2番目のステートメントをフォーマットする正しい方法を知っている人はいますか (または、より簡単に実行する方法)?