Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

2022年に書いた価値あるAppleScript

Posted on 12月 27, 2022 by Takaaki Naganoya

2022年に使用していたmacOS:macOS 12→13

毎年行なっている、Piyomaru Softwareが書いたAppleScriptの1年を振り返る記事の2022年版です。

→ 2018年に書いた価値あるAppleScript
→ 2019年に書いた価値あるAppleScript
→ 2020年に書いた価値あるAppleScript
→ 2021年に書いた価値あるAppleScript

2022年も大変な1年でした。macOSやApple純正アプリケーションのバグが発生したり治ったりのジェットコースター状態。macOS 13.0についても「冗談だよね?」という出来で、

 「もう、OSがアップデートされて半年ぐらい待たないとリリース状態にならないのかも?」

と感じるものです。

13.1でずいぶんまともになりましたが、13.1の出来になってからリリースすべきなのでは? というところ。

たいした追加機能がない割にバグがその数十倍もてんこもりについてくるのは、どうなんでしょう? Appleは機能を開発しているのではなく、もはや「いやがらせのための機能」や「新たなバグ」を開発しているメーカーであるように感じます。β版の段階で開発者/ユーザーが検証して「この新たな嫌がらせの機能は納得できない」とフィードバックしないと、延々と嫌がらせのための機能が増えてくるので、油断できません。

macOS 13のシステム設定も、警告音のフォルダにサウンド以外のAppleScript書類を入れても警告音一覧にそれが出てきてしまうので(さすがに再生はできない)初心者が作るへっぽこアプリケーション並みの作りになっていることが見て取れます。

本を書きまくった1年?

今年執筆した書籍はおよそ、41冊。いま書いている「Mail.app Scripting Book With AppleScript」が年内に書きあがれば(無理無理無理無理)42冊。

ピークの4月は1か月間に8冊。3日に1冊のペースで出していました。感想やら何やら事前に読んでいただいているEdama2さんのご協力に感謝しています。本当にありがとうございます。

「基礎テクニック集」は、今年あらたに立ち上げた書籍シリーズで、「こういうのがないとダメなんじゃないか?」という議論の中から生まれた、基礎を重点的に解説する本です。まだ、書いていない積み残したテーマがあるので、続く感じでしょう。

「実践テクニック集」は、前述の「基礎テクニック集」ではおさまりきらない大きなテーマを扱うシリーズとして立ち上げました。「GUI Scripting」はまとめておくべき大きなテーマであり、方向性やノウハウやツールの使い方など(UI Browserなど)を徹底的に紹介しています。

2022年に書いた価値あるAppleScript

そんなわけで、本ばかり書いていたので毎日KeynoteやPagesばかり使っており、これらのアプリケーションを操作するAppleScriptが必要になったら書いて作業を効率化するという繰り返し。本数はそれほど多くないものの、けっこう強力なものがそろっています。

一方で今年書いたAppleScriptで価値あるもの……といったときに、月ごとにリストアップする形式に無理を感じるようになってきたので、毎月1本といった固定形式にせず、適宜リストアップします。

・AS関連データの取り扱いを容易にする(はずの)privateDataTypeLib
オブジェクトからデータを取り出すのにデータアクセス文字列で指定するという試みです。この手の仕組みがないと、プログラムが冗長になりがちなので用意してみようかというお話しです。

・Bundle IDで指定したアプリケーションのSDEFからコマンドを抽出テスト(指定コマンドのコマンド属性取り出し)
・Bundle IDで指定したアプリケーションのSDEFからオブジェクトを抽出
・Bundle IDで指定したアプリケーションのSDEFからXPathで指定したClassにアクセス v2
アプリケーション内蔵のAppleScript用語辞書を解釈して、Scriptを自動生成するための試みです。割とできるようになるんじゃないかと思っていますが、まだ基礎実験を行なっているだけの状態です(そういうの多いな!)

・Keynoteの表で選択中のセルの文字列長さを一覧表で表示
自分の書いた本の既刊分の説明文をKeynoteの表に入れ、文字が多いとか少ないといった「ゆらぎ」を調べるためのものです。決められたスペースに入れなくてはならないので、この手の細かい作業は割と発生し、こうした確認用Scriptをいったん作っておけば次回からはきわめて短い時間で作業できます。

・Keynote上でテキストアイテムとn重のシェープの重なりを検出 v2
ある意味、Cocoaの機能とGUIアプリケーションの機能をブレンドした内容で、GUIアプリケーションの機能だけでは実現できなかった処理です。矩形オブジェクトが2重とか3重に重なっている場合に検出するというのは、半透明のオブジェクトを重ねて何かを表現している中で生まれたものです。

・Keynote書類中のスライドのトビラページを推測する
Keynoteのマスターページの名前の分布から扉ページを推測するというものです。自分の作る本の傾向を反映させたもので、どの人でも普遍的に使用できるわけではありませんが、、、。

・RectangleBinPackを用いて2D Bin Packを解く v2.3
2D BinPackは、指定の矩形エリア内に指定の複数のオブジェクトを最適化配置して詰め込むもので、KeynoteのようなGUIアプリケーションに対して実行できるのは、非常に効果的です。

・Safariで表示中のYouTubeムービーのサムネイル画像を取得
本当は指定の再生ポジションのサムネイル画像を取得したかったのですが、まだそこまで研究が進んでいません。

・Keynoteの最前面の書類の現在のスライド上の表オブジェクトの重なり合い(2つ以上対応)を検出 v3
これは、書籍に添付しているコマンド表が重なって配置されるという「事故」から、それを検出するScriptを作成したものです。Keynoteの表オブジェクトだけでなく、他のアプリケーションの他のオブジェクトの重なり合わせも検出できることでしょう。

・書籍フォルダの階層をさかのぼって、ツメに掲載する最大チャプターを推測 v2
Pages書類が入っているフォルダの親フォルダをたどって、そのフォルダに記入されている章の数字から最大のものを計算することで、ツメ(ページ端に記載するインデックス)の大きさを変更するものです。ツメをつけると可読性が上がる本がある一方で、ツメの作成や変更を手作業で行うなんて耐えられません。そういうものこそAppleScriptで自動処理させるべきです。

・リストに入れたテキストで、冒頭に入ったマルつき数字をリナンバーする
丸つき数字のリナンバーは、つまらない内容の割に手間がかかる作業であり、これも手作業を撲滅したい内容の上位に入ってくるものです。

・与えられた自然言語テキストから言語を推測して、指定の性別で、TTSキャラクタを自動選択して読み上げ
この手の処理は、AppleScriptのコマンドレベルで普通にできてほしい内容です。ないので自分で書きましたが、macOS 13でText To SpeechキャラクタのID周りに手が入って、これも書き直さないといけないかもしれません。

・Intel MacとApple Silicon Macの速度差〜画像処理
内容はもちろんタイトルどおりですが、これでM1を集積したM1 ProであるとかM1 Ultraの処理性能がメーカー側が言うほどリニアに向上しているわけではないことがわかりました。つまり、M1よりもそれらの上位CPUの方が「処理が遅くなるものもけっこうある」ということです。ここから、M1世代でM1を集積したMac Proが出たら、相当にM1よりも遅い処理が出てくるのでは? と噂していたものですが、作ってはみたもののキャンセルされたようなので、見立て通りといったところだったのでしょう。

2022年の出来事(macOSのバグ以外)

UI Browser 3の開発と販売が終了し、LateNight Softwareに移管された、というのが1つの大きな流れです。Swiftで書き直されたUI Browser 4についてはgithub上でオープンソースで開発が継続されています。

そして、Font Book.appがMac Catalystのアプリケーションに変更され、それにともなってAppleScript用語辞書が削除されました。これが復活するのかどうかは不明ですが、ここに新たに「Catalyst堕ち」という言葉が爆誕。Mac Catalyst化=機能低下バージョンという方針が明らかになってきました。

今年参加したコンテストはFileMaker Proの「バカスタム App選手権」。これに入賞しています。

(Visited 52 times, 2 visits today)

More from my site

  • Keynoteの表の選択中のセルのデータをDeepLで翻訳して書き戻すKeynoteの表の選択中のセルのデータをDeepLで翻訳して書き戻す
  • 新発売:CotEditor Scripting Book with AppleScript新発売:CotEditor Scripting Book with AppleScript
  • クリップボードに入った書式つきテキストをプレーン化する「PlainerText」クリップボードに入った書式つきテキストをプレーン化する「PlainerText」
  • Finderの隠し命令openVirtualLocationが発見されるFinderの隠し命令openVirtualLocationが発見される
  • UI Browserがgithub上でソース公開され、オープンソースにUI Browserがgithub上でソース公開され、オープンソースに
  • 16進数の計算16進数の計算
Posted in news | Tagged 12.0savvy 13.0savvy | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • AppleScriptによるWebブラウザ自動操縦ガイド
  • macOS 13, Ventura(継続更新)
  • ドラッグ&ドロップ機能の未来?
  • Intel MacとApple Silicon Macの速度差〜画像処理
  • macOS 12.x上のAppleScriptのトラブルまとめ
  • マウスの右クリックメニューをカスタマイズするService Station
  • macOS 12.3 beta 5、ASの障害が解消される(?)
  • PFiddlesoft UI Browserが製品終了に
  • CotEditorで選択範囲の行頭にある数字をリナンバーする v1
  • SF Symbolsを名称で指定してPNG画像化
  • 不可視プロセスで表示したNSAlertを最前面に表示
  • 与えられた自然言語テキストから言語を推測して、指定の性別で、TTSキャラクタを自動選択して読み上げ
  • 新刊発売:AppleScriptによるWebブラウザ自動操縦ガイド
  • macOS 12.3 beta4、まだ直らないASまわりの障害
  • Safariで表示中のYouTubeムービーのサムネイル画像を取得
  • Pixelmator Pro v2.4.1で新機能追加+AppleScriptコマンド追加
  • macOS 12のスクリプトエディタで、Context Menu機能にバグ
  • macOS 12.3上でFinder上で選択中のファイルをそのままオープンできない件
  • SafariでブックマークされたURL一覧を取得
  • 人類史上初、魔導書の観点から書かれたAppleScript入門書「7つの宝珠」シリーズ開始?!

Tags

10.11savvy (1102) 10.12savvy (1243) 10.13savvy (1391) 10.14savvy (586) 10.15savvy (434) 11.0savvy (274) 12.0savvy (166) 13.0savvy (21) CotEditor (60) Finder (47) iTunes (19) Keynote (97) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (21) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (42) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (118) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSUUID (18) NSView (33) NSWorkspace (20) Numbers (55) Pages (35) Safari (40) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKWebView (22) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC