AppleのPrivate Frameworkである「ServerInformation.framework」を呼び出すAppleScriptです。
AppStoreを通じて配布するアプリケーションではPrivate Frameworkの使用は問題になる可能性がありますが、ユーザーの手元で動かしているAppleScriptでPrivate Frameworkを煮ようが焼こうが関係ないと思います。
「ServerInformation.framework」は割と利用価値が高そうなものであります。実際にGithub上で探したサンプルをAppleScriptに翻訳して試してみました。
本サンプルは、/System/Library/PrivateFrameworks/という、ふだんFrameworkを呼び出す先「ではない」ディレクトリに入っているFrameworkを呼び出すサンプルでもあり、NSBundleを通じてFrameworkを呼び出す実例でもあります。
この方法を利用すれば、最新のmacOSで(SIPを解除しないで)そのままでは呼び出せなくなっていたホームディレクトリ下のFrameworkとかアプレット内に同梱したFrameworkをローディングして呼び出すことができそうな雰囲気があります。
AppleScript名:ServerInformationで製品情報を取得.scptd |
— – Created by: Takaaki Naganoya – Created on: 2020/03/09 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — — https://gist.github.com/erikng/d90d21f502351d64a541600226626a28 use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use framework "AppKit" use scripting additions set ServerInformation to current application’s NSBundle’s bundleWithPath:"/System/Library/PrivateFrameworks/ServerInformation.framework" set ServerCompatibility to current application’s NSBundle’s bundleWithPath:"/System/Library/PrivateFrameworks/ServerCompatibility.framework" set ServerInformationComputerModelInfo to ServerInformation’s classNamed:"ServerInformationComputerModelInfo" set SVCSystemInfo to ServerCompatibility’s classNamed:"SVCSystemInfo" set myInfo to SVCSystemInfo’s currentSystemInfo() set exInfo to (ServerInformationComputerModelInfo’s attributesForModelIdentifier:(myInfo’s computerModelIdentifier())) as record set anArchitecture to exInfo’s architecture –> "x86_64" set aMonoImageSel to exInfo’s monochromeSelectedHardwareImage –> NSImage (Gray) set aMonoImage to exInfo’s monochromeHardwareImage –> NSImage (Gray) set aDesc to exInfo’s |description| –> "15インチMacBook Pro Retinaディスプレイを装備、デュアルコアIntel Core i7プロセッサ搭載(アルミニウムユニボディ)、2012年の中期に投入。" –> "Mac mini Intelデュアルコアプロセッサおよび統合型グラフィックス搭載、2014年後期に投入。" –> "MacBook Air 11インチディスプレイを装備、2011年の中期に投入。" set aModel to exInfo’s model –> "MacBook Pro" –> "Mac mini" –> "MacBook Air" set aProcessor to exInfo’s processor –> "Intel Core i7" –> "デュアルコアIntel Core i5、デュアルコアIntel Core i7" –> "Dual-Core Intel Core i5、Intel Core i7" set aMarketModel to exInfo’s marketingModel –> "15インチMacBook Pro, Retinaディスプレイ, Intel Core i7 (Mid 2012)" –> "Mac mini(Late 2014)" –> "11インチMacBook Air(Mid 2011)" set aColorImage to exInfo’s hardwareImage –> NSImage (Color) |
More from my site
(Visited 35 times, 1 visits today)