自動AppleScriptまたはどのように以下の気が散る


いくつかの簡単なAppleScriptコマンドを書く


少し前に、私はスペインからイギリスへのフライトで仕事をしていました.私は正式に出張していたので、飛行中に仕事をさせようとして、事前に必要な材料を持っていることを確認しました.飛行機に乗ってコーヒーを注文し始めた.何度か私はブラウザで無関係な何かを入力しようとしていました.私が飛行中でオフラインであったことを思い出したので、私は仕事に戻りました.飛行機は非常に速く通過しました、そして、私は突然イギリスですでに達しました.驚いたことに、私は到着したことを理解しました.私は仕事を終えて、さらに多くのことを学びました.私はこれが起こったと仮定しました.私はオンラインで物事を検索することができないから気が散っていなかったので、私は興奮している他のトピックに私をリードし、短く、私を完全に気を散らした.私は、より集中して、実生活のためにより多くの時間を持つ方法を見つけることが絶対に驚くべきであると思います.👪 🏕️ 🍺

このチュートリアルは何が必要ですか?


特にあなたが新しいスターターであるならば、それはあなたのコンピュータにすでにインストールされている言語で動作するように素晴らしいですので、任意のセットアップなしで始めることができます.
Macintoshでは、bashとAppleScriptが自動的にインストールされます.あなたがこれらがここにあるか、途中で立ち往生するかについて、わからないならば、それはすばらしいです.ここで読むことができます.
What is Bash Script?
Basics of AppleScript

何を達成したいですか?


場合によっては、スクリプトを使用して簡単にすることができますあなたのマシンに繰り返しタスクがあります.この場合は:一時的に気晴らしをオフにすると、お好みのアプリを開き、フルスクリーンモードに設定します.
私たちはこの例のためにAppleScriptを使用しています.なぜなら、それは素晴らしく、人間的に読めるものであり、大きなスタートを切ることができるからです.それは素晴らしいmacgyver 一緒にスクリプトを高速で、あなたのマシンと対話することができますどのように簡単に興奮して、自動化し、時間をかけて微調整.

独自の自動化スクリプトを書く楽しい

スクリプトから始める


任意のコードエディターでファイルを作成します.do shell script AppleScriptコマンドは、bashスクリプトに組み込まれています.あなたの端末でosascript focus.applescript , スクリプトが配置されているフォルダにある場合は、コマンドを実行します.最初の行はApplescriptを使うためにスクリプトをここで実行するアプリケーションに通知します.
!/usr/bin/osascript

do shell script "networksetup -setairportpower en0 off"
あなたはそれがあなたのWiFiを無効になっている何か簡単なことが表示されます.あなたは簡単にメニューバーで確認することができます.

確かに、手動でそれを返すことができますが、このチュートリアルのためには、スクリプトの機能が簡単に確認できるため、素晴らしいです.今より多くの遊び心を取得し、30秒後に無線LANをオンにするまでの遅延を追加しましょう.
クイックチップ:
インラインコメントを追加できます-- AppleScriptと(* do some magic 💥 *) ブロックコメント用.これはあなたのコードに説明を追加するのに非常に便利です.
-- Turn off wifi
do shell script "networksetup -setairportpower en0 off"

-- Wait a bit ⏱️
delay 30

-- Turn wifi back on
do shell script "networksetup -setairportpower en1 on"

引数の追加


これは期待通りに動作します.我々は欲しい
無線LANをオフにする必要がありますどのように多くの分を指定します.スクリプトを次のコード例に変更します.次に、このようなスクリプトを実行するためにターミナルコマンドに引数を追加します.osacript focus.applescript 1 下記のコード例と組み合わせて.ユーザからの引数(ここでは)は、アクセスしてコマンドから取得されますargv , これは引数の値を表します.パラメーターを導入するとすぐに、前のコマンドを“パラメータ化ハンドラ”にラップしなければなりません.この部分on run argv and end run , それは、一緒に、そして、の間に、機能体は、パラメータが利用可能であるならば、あなたが起こることを望むものです.「パラメータ化ハンドラ」は、スクリプトの実行時にデフォルトで呼び出されます.変数として使うことができますsecondsOfSilence パラメータを使用して遅延の秒数を計算します.AppleScriptが時間に関連したものを数秒で計算するので、それは必要です、しかし、我々は言います.次のコード例を示します.

on run argv
    -- Now store time required to focus as seconds
    set secondsOfSilence to 60 * argv
    do shell script "networksetup -setairportpower en1 off"
    delay secondsOfSilence
    do shell script "networksetup -setairportpower en1 on"
end run

クイックチップ:
あなたが何かの値について不明であるとき、あなたがそれを開発している間、二重にチェックする必要があるとき、それは本当に線のような線を加えるのに役に立つことができますsay "The value of" & secondsOfSilence . あなたのマシンは、値が何であるかを声に出して読みます.

スクリプトへの引数の追加


次に、私たちのコマンドには、通常我々は通常動作し、フォーカスしたい特定のアプリケーションを開くにセクションを追加しましょう.これは興味深いのは、2番目の引数を送るとすぐにargv は、異なるアクセスに必要な値のリストです.With item n of argv 引数のリスト内の各要素を取得し、この場合には再び変数に格納します.tell AppleScriptからのコマンドは、あなたがしたいことをラップしているものを実行するコマンドですactivate とアプリを起動し、フロントにそれをもたらすと終了タグのような終了end tell .
    set yourFavouriteApp to item 2 of argv

    -- Open an app you would like to work with and focus on
    tell application yourFavouriteApp

            activate

    end tell
端末のスクリプトを試してみると、別の引数を指定することができます.osascript focus.applescript 1 "TextEdit" . ここでは“TextTeditは”それはあなたが仕事をするようなアプリであることができる例です.正確なスペルの問題は、ドックのアプリの名前のようにする必要があります.

現在実行中のアプリケーションの設定を変更する


最後に、フルスクリーンモードにお好みのアプリを設定している最後のステップを追加します.あなたは簡単にネストすることができることがわかりますtell コマンド.アプリを起動した後、私たちはそれを起動するために時間を与えるために時間を与えるために3秒の遅延を追加し、あなたのマシンでの関心のアプリを見つけるためにプロセスを管理する内部の“システムイベント”アプリケーションを使用して、その属性“axfullscreen”をtrueに.
クイックヒント:AppleScriptで最も利用可能なアプリケーションを一覧表示できます:tell application "System Events" to get name of (processes where background only is false) .

    -- Open an app you would like to work with and focus on
    tell application yourFavouriteApp

            activate

            delay 3

            tell application "System Events" to tell process yourFavouriteApp

                    -- Set app of interest to fullscreen
                    set value of attribute "AXFullScreen" of window 1 to true

            end tell

    end tell
再び手順をまとめましょう.

これは下の最終的なスクリプトです.コメントやコメントをお気軽に.
#!/usr/bin/osascript

on run argv

    set minutes to item 1 of argv
    set yourFavouriteApp to item 2 of argv

    -- Turn off wifi
    set secondsOfSilence to 60 * minutes
    do shell script "networksetup -setairportpower en0 off"

    -- Open App
    tell application yourFavouriteApp

            activate

            delay 3

            tell application "System Events" to tell process yourFavouriteApp

                    -- Set App of interest to fullscreen
                    set value of attribute "AXFullScreen" of window 1 to true

            end tell

    end tell

    -- After waiting turn wifi back on
    delay secondsOfSilence
    do shell script "networksetup -setairportpower en1 on"

end run
今はよく残りの部分を取るし、あなたの仕事を誇りに思ってください!独自のカスタムコマンドを書いておめでとう.