AppleScriptでwi-fiを切り替える方法

今回ご紹介するのはAppleScriptを利用してwi-fiを切り替える方法だ。結果的には、手で切り替えるほうが早いので使わなくなってしまった。

一応ご紹介するのは、Macのメニューを操作する方法が学べるからだ。

もともとAppleScript化したかったのはアクションが複数あるからだ。まずカメラのwi-fiに接続し、つぎにカメラのカードにアクセスする。そこでファイルをダウンロードしてきて作業は終わりである。この後日付別のフォルダーを毎日作ってそこにファイルをコピーするという作業が加わる。

作り方がわからずディスカッションフォーラムで質問した。AppleScriptはやり方が少し特殊で、最初にどんなメニュー項目があるかを調べてからコーディングすることになるそうだ。自分の場合wifiメニューはメニューバーの6番目のアイテムに当たるのだが、これを一つ一つ当たってゆくのである。

every UI element whose name contains などは英語化してしまったために構文がわかりにくくなっている。これはPQI Air CardIIというwi-fiがあったら見つけてきてリストに入れてくれという意味だ。UI上の階層をたどって行き、それをクリックしたり命令を伝えたりすることになる。

AppleScriptには文献が少なくOSのバージョンによって仕様も少しづつ変わっているようだ。文献が少なくコミュニティもないことが普及が進まなかった原因の一つなのかもしれない。

このスクリプトはOS10.5.8で動作した。

tell application "System Events"
 tell process "SystemUIServer"
  tell menu bar 1
   tell menu bar item 6
   click
   delay 2
    tell menu 1
    set myList to every UI element whose name contains "PQI Air card II"
    set number_of_items to count (myList)
    if (number_of_items = 0) then
     click "[name of original wi-fi]"
    else
     click menu item "PQI Air card II"
     delay 5
     tell application "Finder"
							
      activate "Finder"
      mount volume "ftp://192.168.1.1"
      delay 5
      open ("Volumes/192.168.1.1/sd/DCIM" as POSIX file)
     end tell
    end if
   end tell
  end tell
 end tell
 end tell
end tell