NSApplicationにアクセスして実行環境の各種情報を取得するAppleScriptです。
プロセス関連のCocoaオブジェクトは何種類かありますが、
NSApplicationは実行環境そのもの、実行中のアプリケーションの内部情報を取得するオブジェクトのようです。他のアプリケーションをBundle IDで指定してNSApplicationを取得するような処理ができるのかと思って調べていたのですが、どーもできないっぽい。
AppleScriptからSystem Events経由でアクセスするいつものやり方で、取得できない要素はとくにないのですが、一長一短というか得意不得意があるという感じです。
AppleScript名:NSApplicationにアクセス.scptd |
— – Created by: Takaaki Naganoya – Created on: 2019/08/04 — – Copyright © 2019 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use framework "AppKit" use scripting additions set anApp to current application’s NSApplication’s sharedApplication() –> <ScriptDebuggerApplication: 0x600002562d00> anApp’s |running| as boolean –> true anApp’s enabledRemoteNotificationTypes() –> 0 anApp’s mainMenu() –> (* <NSMenu: 0x600001878240> Title: AMainMenu Open bounds: [t=1440, l=0, b=1440, r=0] Supermenu: 0x0 (None), autoenable: YES Items: ( "<NSMenuItem: 0x6000029294a0 Script Debugger, submenu: 0x6000018780c0 (Script Debugger)>", "<NSMenuItem: 0x600002929aa0 File, submenu: 0x6000018789c0 (File)>", "<NSMenuItem: 0x60000292ae20 Edit, submenu: 0x600001878a80 (Edit)>", "<NSMenuItem: 0x60000291c240 View, submenu: 0x600001878c40 (View)>", "<NSMenuItem: 0x60000291cfc0 Search, submenu: 0x600001878e80 (Search)>", "<NSMenuItem: 0x60000291d5c0 Script, submenu: 0x600001878f00 (Script)>", "<NSMenuItem: 0x60000291e700 Dictionary, submenu: 0x600001879040 (Dictionary)>", "<NSMenuItem: 0x60000291ef40 Window, submenu: 0x600001879080 (Window)>", "<NSMenuItem: 0x6000029285a0 Clippings, submenu: 0x600001878840 (Clippings)>", "<NSMenuItem: 0x60000291f540 Scripts, submenu: 0x6000018791c0 (Scripts)>", "<NSMenuItem: 0x60000291fc00 Help, submenu: 0x600001879340 (Help)>" ) *) anApp’s servicesMenu() (* <NSMenu: 0x600001878340> Title: Services Open bounds: [t=nan, l=6.95319e-310, b=nan, r=6.95319e-310] Supermenu: 0x6000018780c0 (Script Debugger), autoenable: YES Items: ( "<NSMenuItem: 0x60000e924cc0 Add to Wunderlist>", "<NSMenuItem: 0x60000e927120 ATOK\U30a4\U30df\U30af\U30eb\U3067\U691c\U7d22>", "<NSMenuItem: 0x60000e926f40 Evernote \U306b\U8ffd\U52a0>", "<NSMenuItem: 0x60000e926a60 Finder\U3067\U60c5\U5831\U3092\U898b\U308b>", "<NSMenuItem: 0x60000e927e40 Finder\U306b\U8868\U793a>", "<NSMenuItem: 0x60000e9275a0 \U958b\U304f>", "<NSMenuItem: 0x60000e9279c0 man\U30da\U30fc\U30b8\U3092\U30bf\U30fc\U30df\U30ca\U30eb\U3067\U958b\U304f>", "<NSMenuItem: 0x60000e9246c0 \U30bf\U30fc\U30df\U30ca\U30eb\U306eman\U30da\U30fc\U30b8\U30a4\U30f3\U30c7\U30c3\U30af\U30b9\U3067\U691c\U7d22>", "<NSMenuItem: 0x60000e924c00 \U30b9\U30c6\U30a3\U30c3\U30ad\U30fc\U30e1\U30e2\U3092\U4f5c\U6210>", "<NSMenuItem: 0x60000e9249c0 \U30b9\U30dd\U30fc\U30af\U30f3\U30c8\U30e9\U30c3\U30af\U3068\U3057\U3066iTunes\U306b\U8ffd\U52a0>", "<NSMenuItem: 0x60000e9244e0 \U30c6\U30ad\U30b9\U30c8\U3092\U7c21\U4f53\U5b57\U4e2d\U56fd\U8a9e\U306b\U5909\U63db>", "<NSMenuItem: 0x60000e927a20 \U30c6\U30ad\U30b9\U30c8\U3092\U5168\U89d2\U306b\U5909\U63db>", "<NSMenuItem: 0x60000e9276c0 \U30c6\U30ad\U30b9\U30c8\U3092\U534a\U89d2\U306b\U5909\U63db>", "<NSMenuItem: 0x60000e9247e0 \U30c6\U30ad\U30b9\U30c8\U3092\U7e41\U4f53\U5b57\U4e2d\U56fd\U8a9e\U306b\U5909\U63db>", "<NSMenuItem: 0x60000e925440 \U30de\U30c3\U30d7\U3092\U8868\U793a>", "<NSMenuItem: 0x60000e926040 \U30a4\U30e1\U30fc\U30b8\U3092\U8aad\U307f\U8fbc\U3080>", "<NSMenuItem: 0x60000e925ec0 \U30c7\U30b9\U30af\U30c8\U30c3\U30d7\U30d4\U30af\U30c1\U30e3\U3092\U8a2d\U5b9a>", "<NSMenuItem: 0x60000e926c40 Skim\U3067URL\U3092\U958b\U304f>", "<NSMenuItem: 0x60000e9266a0 Skim\U3067\U30d5\U30a1\U30a4\U30eb\U3092\U9<<description truncated at 2000 characters out of 4221>>" *) anApp’s mainWindow() –> <ScriptWindow: 0x7ffd73e344c0> anApp’s keyWindow() –> <ScriptWindow: 0x7ffd73e344c0> anApp’s |windows|() (* (NSArray) { <NSPanel: 0x600003139500>, <NSWindow: 0x60000312e500>, <MiniDebuggerWindow: 0x7ffd73e0b870>, <LNSFindWrapAroundWindow: 0x60000312b000>, <NSToolTipPanel: 0x7ffd73dee5e0>, <NSPanel: 0x600003104800>, <NSPanel: 0x600003104700>, <NSWindow: 0x60000315c800>, <NSColorPanel: 0x7ffce4aa99c0>, <NSWindow: 0x600003121d00>, <ScriptWindow: 0x7ffd73e344c0>, <NSComboBoxWindow: 0x7ffce4f27700> } *) anApp’s dockTile() –> <NSDockTile: 0x60000221db00> anApp’s dockTile()’s |size|() –> {width:128.0, height:128.0} anApp’s dockTile()’s owner() –> <ScriptDebuggerApplication: 0x600003f38480> anApp’s dockTile()’s showsApplicationBadge() –> false anApp’s dockTile()’s badgeLabel() anApp’s applicationIconImage() –> <NSImage 0x60000573be40 Size={128, 128} Reps=( …… anApp’s acceptsFirstResponder() –> false anApp’s becomeFirstResponder() –> true |