ページ

2008年8月15日金曜日

マウスカーソルのキャプチャ (1)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

キャプチャにマウスカーソルを含めたい。ドキュメントを眺めたが見つからないので Googleでしたいので調べてみた。以下、分かったこと。

 (1) 「これだ!」といううまい方法は無い
 (2) CGSGetGlobalCursorData( ) を使う ※プライベート関数
 (3) QDGetCursorDataを使う ※10.4 でdeprecated
 (4) 表示されているマウスカーソルとは無関係に、カーソル画像を用意してキャプチャ画像に合成する


(2)(3)が有力だが、片や非公開のプライベート関数、もう一方は 10.4で廃止扱いの関数ときて決定的な方法が見つからなかった。ちょっとユニークだったのが (4)の方法。これは標準のグラブ(Grab.app)が採用している。


情報源:

(2)(3)関連

Apple Mailing List (Carbon.dev) - Getting the system cursor (マウスカーソルのキャプチャ方法について)
http://lists.apple.com/archives/Carbon-dev/2008/Feb/msg00211.html

Apple Mailing List (Quartz-dev)- Going round the bend with CGImageRef 16x16 (CGDataProviderCreateWithDataの利用例)
http://lists.apple.com/archives/quartz-dev//2008/Apr/msg00023.html

Member "x11vnc-0.9.4/x11vnc/macosxCG.c" of archive x11vnc-0.9.4.tar.gz (CGSGetGlobalCursorDataの利用例)
http://www.sfr-fresh.com/unix/privat/x11vnc-0.9.4.tar.gz:a/x11vnc-0.9.4/x11vnc/macosxCG.c

Google グループ cocoa-dev-japan - 在のマウスカーソル画像の取得 オプション
http://groups.google.com/group/cocoa-dev-japan/browse_thread/thread/6596d9a1f4d4ef86


(4)関連

Macの手書き説明書 - スクリーンショットにマウスポインタを含める方法
http://veadardiary.blog29.fc2.com/blog-entry-1290.html


- - - -
とりあえずあちこちで使われている(?)プライベート関数 CGSGetGlobalCursorData() を試してみよう。