質問: applescriptでネット接続制御 環境はosx10.10 yosemiteです。 ネットワーク/詳細/pppの「□必要なときに自動的に接続」のチェックを外し、applescriptで接続の入・切をしたいと思っています。 http://d.hatena.ne.jp/imamura/20091230/applescript ↑の一番下の記事を参考に自分の環境で単語を置き換えて作ってみましたが、「システム環境設定」の「ネットワーク」は開くものの[接続]ボタンを押して接続させることができません。 手動の場合はメニューバーにアプローチしたほうが早いことを知った上でapplescriptで[接続]と[接続解除]をしたいのですが、可能でしょうか?、あるいはautomatorでならできますか? よろしくお願いします
回答: イレギュラーな方法ですが、ボタンを押す「だけ」でいいなら、「mouseclickハンドラ」というものがあります。 私はこれを「ザリガニが見ていた...。」(以下ザリガニさん)のブログで学びました。 ザリガニさんは歯医者さんのサイトで学ばれたそうです。 http://d.hatena.ne.jp/zariganitosh/20120110/moving_mouse_technique ウチの環境(10.9.5)では、以下で動きます。 環境設定パネルが「前に閉じた時の位置」を記憶してることが前提です。 「(562, 516)」というのがウチのモニタにおけるボタンの座標です。command+shift+4 でカーソル脇に座標が表示されます。 「"/system/library/frameworks/ruby.framework/versions/1.8/usr/bin/ruby -e " & quoted form of cocoa_ruby」 の部分の書き方は、ruby のバージョン(?)によって違うかもです。 ruby とは何か、とかそういうことは私はぜんぜん理解しておりません。 「mouseclickハンドラ」以外に、「cliclic」を使う方法もあります。 tell application "system preferences" activate set current pane to pane id "com.apple.preference.network" end tell delay 5 left_mouse_down(562, 516) delay 0.05 left_mouse_down(562, 516) on left_mouse_down(x, y) set cocoa_ruby to "require 'osx/cocoa'; event=osx::cgeventcreatemouseevent(nil, 1, osx::cgpointmake(" & x & "," & y & "), 0); osx::cgeventpost(0,event);" set pt to do shell script "/system/library/frameworks/ruby.framework/versions/1.8/usr/bin/ruby -e " & quoted form of cocoa_ruby end left_mouse_down on left_mouse_up(x, y) set cocoa_ruby to "require 'osx/cocoa'; event=osx::cgeventcreatemouseevent(nil, 2, osx::cgpointmake(" & x & "," & y & "), 0); osx::cgeventpost(0,event);" set pt to do shell script "/system/library/frameworks/ruby.framework/versions/1.8/usr/bin/ruby -e " & quoted form of cocoa_ruby end left_mouse_up しかしながらそのザリガニさんによると、ネットワークパネルで例えば「brashov」という名前の ネットワーク環境を作っておけば、1行か2行でそれをオン/オフできるみたいですよ。 http://d.hatena.ne.jp/zariganitosh/20080317/1205744874