0

今日いくつかの質問で言ったように、特定の場所でウィンドウまたはウィンドウパーツの参照を取得する方法を探しています。この目的で Cocoa を使用できることはわかっていますが (方法はまだわかりません)、この機能を必要とするアプリケーション全体が C++ で記述されているため、Carbon を使用してこれを行うことを好みます (そしておそらくそうする必要があります)。試してみると多くの問題が見つかりました。

次の関数のいずれかを使用して、有効な windowPtr または windowRef を取得する人はいますか? FindWindow、MacFindWindow、HIWindowFindAtLocation、または FindWindowOfClass

探している windowRef または windowPtr として常に 0 を取得します。私が間違っていることは何ですか?何か案は?

Mac OS X 用の 64 ビット アプリケーションを作成する場合、Cocoa を使用してそのユーザー インターフェイスを実装する必要があるのは本当ですか。Carbon アプリケーションで一般的に使用される一部の API は 64 ビット アプリケーションでは使用できないためです。

ありがとうございました。

JxXx

4

1 に答える 1

1

この質問に対するあなたの回答に基づいて、別のアプリケーションのウィンドウへの WindowRef を取得しようとしているようです。

carbon-dev リストへのこの投稿は次のように述べています。

他のプログラムでメモリにアクセスすることはできません。別のプログラムからの WindowRef は、プログラムのメモリ空間では意味がありません。

64 ビット カーボンについては、次のように説明されています。

Mac OS X 用の 64 ビット アプリケーションを作成する場合は、Cocoa を使用してそのユーザー インターフェイスを実装する必要があります。

編集 -

[NSEvent mouseLocation](Cocoa) またはGetMouse()(Carbon)でマウスの位置を取得できます。別のアプリケーションに属するウィンドウとやり取りしたい場合は、アクセシビリティ API (Cocoa) や低レベルのQuartz Window list functionsなどを使用する必要があります。Quartz 関数は、すべてのウィンドウ (すべてのアプリケーションに属する) のリストと、それぞれに関する限られた情報 (境界、所有する PID など) を返します。

于 2010-04-13T11:07:43.383 に答える