2011-08-07 4 views
2

私は以前、OSX上でシステム全体のカーソルを変更することについて質問しました。 NSCursorを使ってカーソルを変更しましたが、効果はアプリケーションがアクティブである限りです。別のアプリケーションがアクティブになると、カスタムカーソルが失われます。アクティブではない場合でも、変更(カスタムカーソル、イメージ描画)を適用できるOS Xアプリケーションを作成するにはどうすればよいですか?

これは、関連性の高い、より一般的な質問です。システム - 妻の効果を得るためにアプリケーションを書く方法は?例えば、あなたのアプリケーションがアクティブでなくても何か他のものがあっても画面上に画像を描くのですか?

おそらく、私はCocoa APIよりも低いレベルにする必要があることを理解しています。私はどこから探し始めるのか分かりません。私が見なければならない特定のCarbon APIまたはさらに低い?

何か指摘したいと思います!カーソルをシステム全体でどのように変更するか、画像を描画して移動する方法を知っている場合(アクティブなアプリケーションに関係なく)、これも私の現在の問題を解決します。システムにインストールされているときにこれを実現できるアプリケーションを作成できますか?

ありがとうございます!

答えて

0

この動作はMac OS X上のAPIでは提供されていません。OSのリソースファイルを変更する必要があります。これは、ターゲットコンピュータをブリックする可能性がある非常に危険な操作です。あなたはあなたがしていることを知る必要があります。

テーマアプリなどを実装しようとしていますか?あなたの目標は何ですか?あなたがしようとしていることを教えていただければ、代替アプローチを提案することができます。

+0

私がやろうとしていることの単純な例です。私はプログラムで "レーザーポインター"と同等のものを画面上に表示するプレゼンテーション支援アプリケーションを作成しています。私の最初のアイデアは、ポインタとしてマウスカーソル自体を使用し、その外観を赤い円として変更することでした。あなたが言うようにそれが不可能ならば、私は画面上に赤い円を描き、それをプログラムで制御したいが、アプリケーション自体がアクティブでないときでも表示できるはずである(この場合、プレゼンテーションが完全に実行されているとき-画面)。ありがとう! – AJJ

+0

私はあなたがしていることを再検討しなければならないかもしれないと思います。レーザーポインタは効果的です。なぜなら、生成するドットが投影される画像よりもはるかに明るく、その上には目立つからです。画面上の赤い点は、投影と同程度に明るく、すぐには見えません。 –

1

あなたはあなたが望む効果を得ることができますが、あなたがそれをやろうと考えている方法ではありません。

あなたが言う、私はプログラムによって、画面上の「レーザーポインター」と同等のものを示し、プレゼンテーション支援アプリケーションを書いています

。私の最初のアイデアは、ポインタとしてマウスカーソル自体を使用し、その外観を赤い円として変更することでした。

次にそれを偽造します。希望の動作に応じて、おそらくタイプLSUIElementのアプリケーションを作成します。フチ無しのウィンドウ(タイプNSBorderlessWindowMask)を作成し、透明な色で塗りつぶします。すべての上に浮動するようにウィンドウレベルを十分に高く設定します(-[NSWindow setLevel:]を使用しますが、私は最高のレベルが外れているとは思えません)。

あなたが一番重要なアプリではないときにカーソルを設定できないのは本当です。あなたがスクリーン上で手書きすることはできません。しかし、あなたが巧みであれば、同じ効果を得ることができます。

+0

あなたの答えをありがとう!私はこれらのことを試してみる。 – AJJ

関連する問題