5

Mac OS X Leopard には、Spaces と呼ばれる仮想デスクトップ実装があります。ユーザーが現在どのスペースにいるかをプログラムで検出したい。

Cocoa が望ましいですが、他に方法がない場合は AppleScript を使用できます。

AppleScript の実装をいくつか見たことがありますが、それらが使用した手法は、プロダクション コードで使用するには少しハックすぎるように思えました (1 つはエラーを発生させ、エラー メッセージを解析して現在のスペースを取得することに依存していました。もう 1 つは Spaces メニューを調べました)。 GUI)

4

2 に答える 2

15

HIWindowGetCGWindowID を使用して、WindowRef の CGWindowID を取得します。

その ID を CGWindow.h の CGWindowListCreateDescriptionFromArray で使用して、ウィンドウに関する情報を取得します。

返された辞書を見て、(オプションの) kCGWindowWorkspace キーを抽出します。これは、ウィンドウのスペース ID です。

于 2009-02-16T20:04:09.477 に答える
9

誰かがまだ気にかけている場合は、 http://github.com/shabble/osx-space-idで入手できるここの回答に基づいて、小さなコマンドライン util をまとめました。

于 2010-03-25T07:09:28.697 に答える