1

私はAppleScriptについて何も知りませんが、それが私の人生を楽にしてくれるのではないかと思います.TextWranglerなどの別のアプリケーションでドキュメントを保存するときにSafari / Firefox / Chromeに現在のタブを更新するように指示するAppleScriptを書く方法はありますか? Command+S基本的に、 2 つの別々のアプリケーションで同時に 2 つのことを実行できるように、キーボード ショートカットをマップしたいと考えています。

それが不可能な場合、1 つのファイルを保存すると、同じアプリケーションの別のウィンドウでコマンドが実行されるように、1 つのアプリケーションをスクリプト化できますか?

4

2 に答える 2

0

これを実装するにはさまざまなアプローチが考えられますが、おそらく最も簡単なのは、必要なすべてのステップを実行するスクリプトを作成し (つまり、ドキュメントを保存してウィンドウを更新する)、それをCmd+Sトリガー アプリケーションのキーボード コンボにバインドすることです。

このアプローチが機能するために必要なのは、次の順序です。

  1. 特定のアプリケーションでのみ有効なスクリプトにキー コンボをバインドする方法OS X の Automator Servicesはその法案に適合します。その範囲は単一のアプリケーションに制限でき (ワークフロー アクションの上部にある「のみ」ドロップダウンで選択します)、キーボード設定ペインでショートカットを割り当てることができます。システム環境設定の。
  2. コマンドが対象とするアプリケーションにコマンドを中継する方法。AppleScript は、アプリケーションがスクリプト可能であるかどうか、つまり、AppleScript エディタで検査できるスクリプト辞書を持っているかどうかに応じて、2 つの異なる方法で役立ちます。

    • もしそうなら、そして彼らの用語には、一方ではエディターの保存アクションが含まれ(ほとんどのスクリプト可能なドキュメントベースのアプリはフォームでそうしますsave <document>)、他方ではブラウザのページ更新が含まれます(Chrome はreload <tab>、Safari は同じものを取得します) JavaScript の回り道、つまり、do JavaScript "window.location.reload()" in <document>私は Firefox を使用していません) を介して結果を得ることができれば、設定は完了です。
    • そうでない場合は、GUI スクリプトが役立つ場合があります。つまり、右の UI 要素 (メニューまたはツールバー) のクリックを を介してシミュレートしますtell application "System Events" to tell process <your process> to click item x of menu y

    その後、そのスクリプトを Automator ワークフローに埋め込むことができます (正確には、「AppleScript の実行」アクションで)。

ご覧のとおり、使用している正確なソフトウェアに大きく依存します。もしあなたが AppleScript に不慣れで、上記のことに困惑しているなら、Mac OS X Automation の AppleScript ページに少し時間を費やすことをお勧めします (そこには、GUI スクリプティングのようなものを始めるためのサンプル スクリプトもあります)。 .

最後に 1 つ: この記事の執筆時点では、サンドボックス化されたアプリケーションは、[キーボード設定] ペインで割り当てられたキーの組み合わせを受け入れません(それらは、そこで設定されたグローバルなキーの組み合わせを受け入れますが、特にそれらを対象とするものではありません)。これは、たとえば現在Cmd+S、Lion に保存するための TextEdit のショートカットをオーバーライドできないことを意味します。エディターがサンドボックス化されていない (アクティビティ モニターで簡単に確認できる) 限り、これで問題はないはずです。

于 2012-06-15T17:19:36.760 に答える
0

1 つの解決策は、新しいファイルがフォルダーに保存されたときに現在のタブを更新するフォルダー アクションを作成することです。

on adding folder items to theFolder after receiving theFiles

    tell application "Google Chrome"
        activate
        tell window 1 to tell active tab
            set URL to (get URL)
        end tell
    end tell

end adding folder items to
于 2012-06-21T18:46:57.110 に答える