PyObjC
github
https://ja.wikipedia.org/wiki/PyObjC
PyObjCは、PythonとObjective-Cとの間につくられた双方向ブリッジである。これを利用することで、PythonスクリプトからObjective-Cクラスライブラリを使用したり拡張することができる。
AppKitやQuartzをPythonから使用できる
GPT-4.icon
NSWorkspace
NSWorkspaceは、macOSのアプリケーションやデスクトップ環境の状態を管理・取得するためのクラスです。このクラスを使って、アクティブなアプリケーションやシステム上のプロセス情報を取得できます。
NSWorkspace.sharedWorkspace()
NSWorkspaceの共有インスタンス(シングルトン)を取得します。ほとんどの用途では、この共有インスタンスを使用します。
frontmostApplication()
現在最前面に表示されているアプリケーション(つまりユーザーが現在操作しているアプリケーション)を返します。このアプリケーションはNSRunningApplicationオブジェクトとして返されます。
NSRunningApplication
NSRunningApplicationクラスは、macOS上で実行中のアプリケーションを表します。これを使用して、アプリケーションの状態(アクティブかどうか、アプリ名など)を確認できます。
localizedName()
アプリケーションのローカライズされた名前を返します(通常はアプリケーションの表示名)。
runningApplicationsWithBundleIdentifier_()
指定されたバンドルIDに一致するすべての実行中のアプリケーションのリストを返します。バンドルIDは各アプリケーションの一意の識別子で、例えばKindleの場合は"com.amazon.Kindle"です。
isActive()
アプ リケーションが現在アクティブであるかどうかを示すブール値を返します。アクティブなアプリケーションはユーザーが操作中のアプリケーションを指します。
Quartzモジュールとウィンドウ情報の取得
Quartzモジュールは、macOSのCore Graphics APIにアクセスするためのインターフェイスを提供します。ウィンドウの情報を取得するために使われます。
CGWindowListCopyWindowInfo()
kCGWindowListOptionOnScreenOnly
画面上に表示されているウィンドウのみを対象とするオプションです。
kCGNullWindowID
ウィンドウIDとして使用する場合、この値を指定すると全ウィンドウが対象になります。