MacBookでマウスカーソルがループするアプリを製作

MacBookトラックパッドを必死にこすっていませんか?(苦笑)。画面の巨大化に伴いマウスの移動量も増加の一途をたどっています。ま、画面の横端にマウスカーソルが来ると反対側に移動するアプリでも作ってみますか。

まず、ADCからサンプルコード、EventMonitorTestをゲッツ。

http://developer.apple.com/samplecode/EventMonitorTest/

マウスカーソルの移動はOpenGLで。

http://developer.apple.com/jp/technotes/tn2007.html#Section10
http://developer.apple.com/jp/qa/qa2001/qa1209.html

CGDisplayMoveCursorToPoint(display, point);
または
CGWarpMouseCursorPosition(point);
でマウスカーソルが移動できますよ、って話です。


で、サンプルをざくざく削って、フレームワークはCarbonでつらつらとC言語でコーディングして出来たプロダクツが以下です。
loopc1_nf.zip
制限事項:メインモニタのみ対応、Mac OS X 10.3以降。


そのままターミナルから起動できますが、あまりにあんまりです(苦笑)。ので流行の?launchd(Mac OS X 10.4以降)で
launchdエージェントとして動かすのが得策かと思います。launchdデーモンではなくlaunchdエージェントにする訳は以下の通りです。

http://developer.apple.com/jp/technotes/tn2005/tn2083.html
デーモンを作成するときには、デーモンセーフなフレームワークにのみリンクします(「フレームワーク相互参照」を参照)。
エージェントを開発するときには、任意のフレームワークとリンクできます。

あと、launchdエージェントとして起動させるためのplistですがLingon(http://lingon.sourceforge.net/)を用いて「My Agents」で作成すれば完成。