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

カテゴリー: Books

新発売:AppleScript実践的テクニック集(1)GUI Scripting

Posted on 10月 10, 2022 by Takaaki Naganoya

Piyomaru Software Booksの60冊目。GUIアプリケーションを強引に動かす「GUI Scripting」について動作原理から気をつけるべき点、実戦レベルのScriptで注意している点やサンプルなどをまとめた「AppleScript実践的テクニック集(1)GUI Scripting」を発売しました。本文283ページとなっています。

→ 販売ページ

「AppleScript実践的テクニック集」とは、従来の「基礎テクニック集」の枠組みでは収まりきらないテーマを扱う新シリーズです。基礎テクニック集は32ページ前後のコンパクトな構成にするために、いろいろ省略した部分もありましたが、この枠組みに入り切らないテーマを別枠でご紹介することにしたものです。

ページ数の上限をとくに設けず、徹底的に情報を入れる設計です。それでいて、「基礎テクニック集」ゆずりの図や表を多用した構成はそのままです。

使い所さえ間違えなければ強力な武器になるGUI Scriptingについて、動作原理からノウハウ、注意すべきポイントや実戦レベルのScriptで気をつけていること、さまざまな「ありがちな処理」のサンプルなどを紹介する1冊です。

■GUI Scripting (UI Element Scripting)とは?

AS用語辞書にすべての機能は掲載されていません①
AS用語辞書にすべての機能は掲載されていません②
AppleScript非対応機能を呼ぶGUI Scripting
GUI Scriptingとは?
GUI ScriptingはSystem Eventsごしに操作
操作対象のアプリケーション①
操作対象のアプリケーション②

■AppleScript非対応機能を操作する

KeynoteでASから利用できない機能を呼ぶ
GUIアプリケーションの挙動確認が欠かせません
メニュー項目操作の実例
実行結果のリストアップ①
実行結果のリストアップ②

■GUI Scriptingの実行を許可する

デフォルト状態だとGUI Scriptingは無効
AppleScript実行アプリケーションを登録
設定するとGUI Scriptingが有効に
スクリプトメニューも登録必須
資料:macOS上のAppleScript実行環境①
資料:macOS上のAppleScript実行環境②

■GUI部品への参照を求める方法

メニュー項目:メニューを頂点としたツリー
ウィンドウ上のオブジェクト:ウィンドウが基準
簡単なGUI部品の求め方

■GUI Scriptingでやりたい特徴的な操作

GUI Scriptingの有効チェック
属性値の取得(properties)
属性値の取得(AX-attributes)
GUI部品のクリック
指定座標のクリック
参考資料:GUI Scriptingの座標系
ポップアップメニューの項目選択
キー入力操作
項目選択
コンテクストメニューの表示
スクロール操作
ファイル保存/書き出し
自分で発生させたモーダルなダイアログのクリック
ドラッグ&ドロップ操作
日本語IMの文字入力モード取得/設定

■マウスカーソルの強制移動&強制クリック

マウスカーソルを移動させる必要性
マウスカーソルの強制移動とクリック

■実戦レベルのAppleScriptにおけるGUI Scripting解説

指定フォルダ以下のPagesなどをPDF出力して連結
実際のメインScript部分
generatePDFLibの当該箇所
本プログラムが環境の影響を受けた点
参考資料:デスクトップの表示/非表示切り替え

■Accessibility Inspectorの使い方

Xcodeに入っているGUI部品探索ツール
Accessibility Inspectorの画面構成①
Accessibility Inspectorの画面構成②
プロセス一覧から対象を選択してInspection
指定プロセスのGUI部品の追跡中の画面表示
GUI部品の追跡ポーズ中の画面表示

■OSやアプリケーションのアップデートに備える

OSアップデートごとにGUI構成は変わる
GUI Scripting処理部分だけをサブルーチンに分離
GUI Scripting処理部分をライブラリに分離
OSアップデートの影響を受けにくい構造に

■GUI Scriptingの信頼性は?

GUI Scriptingの信頼性は?
一般的な信頼性の計測方法
経験に基づく傾向と対策
GUI Scriptingで直面した問題とその解決策
指定した処理の終了前に次の処理が行われる
同じ名前のプロセスが存在していると名称衝突①
同じ名前のプロセスが存在していると名称衝突②

■GUI Scriptingサンプル集

指定のアプリケーションの全メニュータイトルを取得
選択中のテキストを取得
選択中のテキストを書き換え
Safariの最前面のウィンドウへの参照を得る
GUI部品への参照から所属するアプリケーション名を取得
Dockに登録されているアイコンの情報を取得
Keynoteで選択中のテキストを縦書きに
CotEditorで最前面のウィンドウを縦書きに

■GUI Scripting資料集

click【クリック】コマンド
key code【キーコード】コマンド
keystroke【キーストローク】コマンド
perform【パフォーム】コマンド
select【セレクト】コマンド
application【アプリケーション】クラス
action【アクション】クラス
application process【アプリケーションプロセス】クラス
attribute【アトリビュート】クラス
browser【ブラウザ】クラス
busy indicator【ビジーインディケータ】クラス
button【ボタン】クラス
checkbox【チェックボックス】クラス
color well【カラーウェル】クラス
column【カラム】クラス
combo box【コンボボックス】クラス
desk accessory process【デスクアクセサリプロセス】クラス
drawer【ドロワー】クラス
group【グループ】クラス
grow area【グローエリア】クラス
image【イメージ】クラス
incrementor【インクリメンタ】クラス
list【リスト】クラス
menu【メニュー】クラス
menu bar【メニューバー】クラス
menu bar item【メニューバーアイテム】クラス
menu button 【メニューボタン】クラス
menu item 【メニューアイテム】クラス
outline 【アウトライン】クラス
pop over 【ポップオーバー】クラス
pop up button 【ポップアップボタン】クラス
process 【プロセス】クラス
progress indicator 【プログレスインジケータ】クラス
radio button 【ラジオボタン】クラス
radio group【ラジオグループ】クラス
relevance indicator【レレベンスインジケータ】クラス
row【ロー】クラス
scroll area【スクロールエリア】クラス
scroll bar 【スクロールバー】クラス
sheet 【シート】クラス
slider【スライダ】クラス
splitter【スプリッタ】クラス
splitter group【スプリッタグループ】クラス
static text【スタティックテキスト】クラス
tab group【タブグループ】クラス
table【テーブル】クラス
text area【テキストエリア】クラス
text field【テキストフィールド】クラス
toolbar【ツールバー】クラス
UI element【ユーアイエレメント】クラス
value indicator【バリューインディケータ】クラス
window【ウインドウ】クラス

■AppleScript資料集

macOSバージョンとAppleScriptの動向
macOSとAppleScriptの要素技術史
各macOSごとのAppleScript解説
macOS内AppleScript補助ツールの歴史
System EventsのAppleScript用語辞書変更点
AppleScript 各ランタイム環境情報
AppleScript予約語一覧
AppleScriptのエラーコード
あとがき
奥付

Posted in Books GUI Scripting news PRODUCTS | Tagged 12.0savvy CotEditor Keynote System Events TextEdit | Leave a comment

新発売:iWork Scripting Book with AppleScript

Posted on 9月 30, 2022 by Takaaki Naganoya

Piyomaru Software Booksの59冊目。Keynote、Pages、Numbersの3つのアプリケーションのScriptingについて、共通する部分に着目して3つとも解説するScripting本、「iWork Scripting Book with AppleScript」を発売しました。本文239ページ、資料編198ページの合計437ページの大ボリウムです。

→ 販売ページ

目次

スクリプトエディタを起動しよう
スクリプトエディタを起動しよう!
スクリプトエディタのヘルプ
色設定を変えてみよう!
スクリプトを入力してみよう
スクリプトを保存しよう
スクリプトを実行しよう(1/3)
スクリプトを実行しよう(2/3)
スクリプトを実行しよう(3/3)
セキュリティとプライバシー
セキュリティとプライバシー>プライバシー
iWork appsを起動しよう
Keynote/Pages/Numbersを指定
Keynote/Pages/Numbersを起動
Keynote/Pages/Numbersを終了
Mail.appのAppleScript用語辞書の調べ方
メニュー項目や画面強制操作の調べ方
各iWork appsの詳細仕様について
iWork appsの情報を取得しよう
アプリケーションの名前を取得
アプリケーションの情報を一括取得
アプリケーションのプロパティ項目と内容
新規書類の作成
新規書類の作成
テーマ/テンプレート名の取得
テーマ/テンプレートを指定しつつ新規書類作成①
テーマ/テンプレートを指定しつつ新規書類作成②
参考資料:テーマ/テンプレート名
Keynote:SD/HD、他のサイズの書類の指定
新規スライド/ページ/シートの作成
各iWork appsにおける新規ページの作成
Keynote:レイアウト名の取得とスライド追加
Pages:ページ追加
Numbers:シート追加
書類情報の取得
書類からの各種情報取得
書類名(name)はFinder設定と連動
書類のパスワード保護状態を取得
書類保存
書類を保存(保存ずみ書類に上書き保存)
書類を新規保存①
書類を新規保存(A.)
書類を新規保存(B.)
書類を新規保存(C.)
コラム「iWork appsが使用するパス表現」
書類へのパスワード
設定と解除
iWork書類へのパスワード設定
パスワード設定されたiWork書類のオープン
書類へのパスワード設定と解除
通常書類とパスワード保護された書類の比較

■中級

書類上の座標系
書類上の座標系
Pages書類の座標系
現在表示中のページ
書類上の現在表示中のページ番号を取得
選択中のアイテムの取得
selectionで取得できる選択中のオブジェクト
Numbersで取得できる表オブジェクト情報
デフォルトタイトル
アイテムへの文字設定(Keynote)
デフォルトタイトルアイテムのオブジェクト
デフォルトタイトルアイテムのテキストを取得
デフォルトタイトルアイテムにテキストを設定
Pagesの本文作成
書類タイプ別のPages本文の作り方
Pagesの文章の本文(body text)の操作
Pagesの文章の本文(body text)の色指定
Pagesの文章の本文(body text)のフォント指定
Pagesの文章の本文(body text)の単語にアクセス
Pagesの文章のページにアクセス(追加)
Pagesの文章のページにアクセス(削除①)
Pagesの文章のページにアクセス(削除②)
Pagesの文章のセクションにアクセス
Pagesの文章のセクションにアクセス
選択中の表からのデータ取得/設定
選択範囲(selection range)へのアクセス
選択範囲のセルの取得
選択範囲のセルのデータの取得
指定セルのデータの取得①
指定セルのデータの取得②
指定範囲のセルのデータの取得
カラム名の数値からの変換
指定範囲のセルのデータを2次元配列で取得①
指定範囲のセルのデータを2次元配列で取得②
指定範囲のセルのデータを2次元配列で取得③
指定セルにデータを設定①
指定セルにデータを設定②
指定範囲のセルへの配列データの設定
表にクリップボード経由で大量の2次元配列データを設定
テキストボックスの作成
テキストボックスのオブジェクト
テキストボックスの作成
表の作成
表の作成
表の作成+データ設定
表のソート、
セルの結合と分離
表の昇順(A→Z)ソート
表の降順(Z→A)ソート
表セルの結合
結合セルの解除
画像(image)の挿入
指定画像の挿入
Keynote:イメージスライドの作成
shape, lineの作成
shape/lineの分類
shapeの識別
shapeの作成
放射状にラインを引く(Keynote)
放射状にラインを引く(Pages)
放射状にラインを引く(Numbers)
audio clip, movieの作成
音声トラックのaudio clipの作成
ムービー(movie)の作成
プレースホルダへのデータさしこみ(Pages)
プレースホルダとは?
Pagesのテキストプレースホルダの作成①
Pagesのテキストプレースホルダの作成②
Pagesのテキストプレースホルダを利用
Pagesのメディアプレースホルダの作成
Keynoteのテキストプレースホルダ
グループへのアクセス
Keynote:グループ内のオブジェクトにアクセス
Pages:グループ内のオブジェクトにアクセス
Numbers:グループ内のオブジェクトにアクセス
Keynote:グループ内のオブジェクトの親にアクセス
シート処理(Numbers)
Numbers:シートの新規追加
Numbers:シートの削除、表示切り替え
Numbers:シートの名称変更
Numbers:現在表示中のシートのIDを返す
Numbers:シートの名称による検索
スライドの追加と順次ループ(Keynote)
Keynote:スライドの追加
Keynote:スライドの順次ループアクセス
Keynote:スライドの順次追加
スライド間の表示切り替えエフェクト指定(Keynote)
Keynote:スライド切り替え効果一覧
Keynote:スライド切り替えを設定
発表者ノート(Keynote)を記入
Keynote:発表者ノートとは?
Keynote:発表者ノートの操作
表への計算式の代入
iWork appsで共通して利用できる関数
表のセルに計算式を代入
表のセルの計算結果(値)を取得
表のセルの計算式を取得
グラフ作成(Keynote)
Keynoteで扱えるグラフの一覧
Keynote:2D横/縦棒グラフ
Keynote:3D横/縦棒グラフ
Keynote:2D/3D面グラフ
Keynote:2D/3D円グラフ
Keynote:2D散布図グラフ
Keynote:2D積み重ね縦/横棒グラフ
Keynote:3D積み重ね縦/横棒グラフ
Keynote:2D/3D階層グラフ
Keynote:2D/3D折れ線グラフ
データの書き出し(エクスポート)
各iWork appsが書き出し可能なフォーマット
書き出し用ファイルパスの組み立て
PDF書き出し
Microsoft Office書類として書き出し
Keynote:HTML書き出し
Keynote:QuickTimeムービー書き出し
Keynote:イメージ書き出し
Keynote:Keynote 09形式書き出し
Pages:EPUB形式書き出し
Pages:テキスト書き出し
Pages:Pages 09形式書き出し
Pages:リッチテキストフォーマットで書き出し
Numbers:Numbers 09形式で書き出し
Numbers:CSV形式で書き出し
印刷
iWork appsから印刷出力
AppleScriptによるプリントアウト
Keynote:印刷オプションの指定
Pages:印刷オプションの指定
Numbers:印刷オプションの指定

■上級

書式付きテキストへのアクセス
Keynoteでobject textの書式属性設定
Pagesでobject textの書式属性設定
Numbersでobject textの書式属性設定
Keynoteでobject textの文字色、フォント置換
Pagesでobject textの文字色、フォント置換
Numbersでobject textの文字色、フォント置換
書式付きテキストの幅に応じたtext item自体のリサイズ
Text itemの枠の幅を文字内容でリサイズ①
Text itemの枠の幅を文字内容でリサイズ②
Text itemの枠の幅を文字内容でリサイズ①
Text itemの枠の幅を文字内容でリサイズ②
Text itemの枠の幅を文字内容でリサイズ①
Text itemの枠の幅を文字内容でリサイズ②
text item内のテキストの使用言語の自動推定
Keynote:書類中のtext itemの使用言語を推定①
Keynote:書類中のtext itemの使用言語を推定②
Pages:書類中のtext itemの使用言語を推定①
Pages:書類中のtext itemの使用言語を推定②
Numbers:書類中のtext itemの使用言語を推定①
Numbers:書類中のtext itemの使用言語を推定②
指定行列ヘッダによる表セルへのアクセス
Keynote:指定行列ヘッダによる表セルへのアクセス
Keynote:指定行列ヘッダによる表セルへのアクセス
Pages:指定行列ヘッダによる表セルへのアクセス
Pages:指定行列ヘッダによる表セルへのアクセス
Numbers:指定行列ヘッダによる表セルへのアクセス
Numbers:指定行列ヘッダによる表セルへのアクセス
汎用オブジェクト(iWork item)によるアクセス
汎用クラスiWork itemで取得できるオブジェクト
Keynote:iWork itemでアクセス
Pages:iWork itemでアクセス
Numbers:iWork itemでアクセス
オブジェクトの重なり検出(Keynote)
Keynote:テキストとshapeの重なり検出①
Keynote:テキストとshapeの重なり検出②
書類内部データへのアクセス
iWork app書類の構造
通常書類とパスワード保護された書類の比較
Keynote固有のプレゼン系操作について
Keynote:プレゼン再生コントロール
Keynote書類のプレゼン関連情報
Keynote:プレゼン再生関連の属性値
Keynote:transitionサンプル書類作成&再生

Posted in Books news | Tagged 12.0savvy Keynote Numbers Pages | Leave a comment

新発売:AppleScriptからSiriを呼び出そう!

Posted on 8月 31, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScriptからSiriを呼び出そう!」です。PDF 42ページ。サンプルScriptおよびSiriを呼び出すAppleScriptライブラリ「AgentCallerLib」を添付。

# 内容および添付の「AgentCallerLib」をv1.1にアップデートしました。
# 「AgentCallerLib」をmacOS 13対応のv1.2にアップデートしました

→ 販売ページ

本書は、iOS生まれの音声エージェント「Siri」をAppleScriptから呼び出すために必要な情報をまとめたものです。

SiriはiOSからmacOSに移植され、MacBookやiMac、Mac miniやMac Proなどでも利用できるようになりました。

職場や学校などで音声で呼び出すことははばかられますが、キーボードから呼び出す分には、周りに人がいても利用しやすくなりました。

今回、本書をまとめるにあたってAppleScriptからSiriを呼び出すためのライブラリ「AgentCallLib」を整備し、めんどうな設定についても画面キャプチャをまじえて、わかりやすくまとめてみました。

本書では、AppleScriptにくわしくない人でも最低限の操作ができるように、AppleScript書類の保存や実行について、基礎的な情報を重点的におさえています。

AppleScriptはApple Silicon Macでも、Intel Macでも動きますので、どちらの環境でも本書の内容はご利用いただけます。「AppleScriptにとりあえずさわってみる」テーマとしても、Siriのコントロールはわかりやすくてよいものでしょう。

目次

■Siriを呼び出すAgentCallLibのインストール

AppleScriptからSiriを呼び出す意義
最初に、システム環境設定の2つの設定を
AppleScriptからSiriを呼び出すための部品
AgentCallLibインストール先フォルダ
どのプログラムからSiriを呼び出すか?
資料:利用可能なAppleScript実行環境
資料:利用できないAppleScript実行環境
利用可能な開発環境
利用可能なアプレット,ドロップレット
利用可能なメニュー形式Scriptランチャー
その他の利用可能なScriptランチャー
利用可能なアプリケーション内蔵Scriptメニュー

■Siriを呼び出すAppleScriptの書き方

セキュリティ&プライバシー設定
Siriを呼び出すAppleScriptの書き方①
Siriを呼び出すAppleScriptの書き方②
Siriを呼び出すAppleScriptの構文確認
Siriを呼び出すAppleScriptの実行
Siriを呼び出すAppleScriptの保存
AppleScriptに指定するSiriコマンドのサンプル

■他の言語のSiriをAppleScriptから呼び出そう

他の言語のSiriも呼び出せます
Siriの対応言語一覧
英語(English)のSiriを呼び出す
フランス語(French)のSiriを呼び出す
ドイツ語(Germany)のSiriを呼び出す
スペイン語(Spanish)のSiriを呼び出す
中国語(北京語)のSiriを呼び出す

■Siriで呼び出せるコマンドや機能について

Siriが受け付けるコマンドの方向性
HomeKit対応デバイスを操作

Posted in Books news PRODUCTS | Tagged 12.0savvy | 3 Comments

新発売:AppleScript基礎テクニック集(24)フォント指定

Posted on 8月 7, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScript基礎テクニック集」の第24巻、「フォント指定」です。PDF 34ページ。サンプルScriptのZipアーカイブを添付。

→ 販売ページ

macOS上でフォントは「PostScript Name」、「正式名称(Display Name)」で管理されており、どちらの指定も受け付けるアプリケーションもあれば、PostScript Nameだけを要求するアプリケーションもあるなどさまざまです。CocoaのAPIではPostScript Nameが利用されています。

また、フォント名を「ファミリー」と「スタイル」に分けて指定できるようにもなっており、個別に指定できるアプリケーションもありますが(Adobe InDesignなど)、これはごく一部です。

結局、アプリケーションごとに対応はまちまちですが、指定できることにはかわりありません。こうしたフォント指定について、フォント管理アプリケーションFont Bookを通じてさまざまなフォントの属性情報を取得する方法についてご紹介します。

目次

■AppleScriptにおけるフォント情報管理

フォント情報は「Font Book.app」で調べる
フォントを階層構造とコレクションで管理
これが、フォントの識別情報
AppleScriptに対応しているFont Book.app
Font Book上の選択中のフォントを取得
標準搭載、メニューからScriptを実行する機能

■Keynote/Pages/Numbersでフォント情報を指定

Keynote書類上のテキストアイテムのフォント指定
iWork apps全般では正式名称でもPS名でも可
Pagesでも正式名称/PostScript名でOK
Numbersでも正式名称/PostScript名でOK

■書式付きテキストをAppleScriptから生成

TextEditには特殊なオブジェクトで書式アクセス

■Font Book.app関連AppleScriptサンプル

FontBook.app自体のプロパティを取得
フォントライブラリ情報を取得
フォントコレクション情報を取得
フォントコンテナ情報を取得
選択中のアイテムを取得
フォントにアクセス①
フォントにアクセス②
フォントを削除

Posted in Books Font news PRODUCTS | Tagged 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(23)サブルーチン、ハンドラ

Posted on 8月 5, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScript基礎テクニック集」の第23巻、「スクリプトメニューの使い方」です。PDF 35ページ。サンプルScriptのZipアーカイブを添付。

→ 販売ページ

AppleScriptのサブルーチンを構成する「ハンドラ」の記述方法は、普段使わないものも含めると、いろいろな書き方があります。

サブルーチンは、一度書いた有用な処理は何回でも使い回すことを目的に、使い回しやすいように清書したものです。記述量を減らすことができ、一度書いた内容は二度目からは書く必要がなく、他人が書いたサブルーチンを利用することで、生産性を大幅に上げられます。

サブルーチンの有効性を理解できたら、初級者から中級者にステップアップしたと言ってよいでしょう。

ふだんなにげなく使っていて、存在そのものを知っているのに、実際に調べてみると割と内容がてんこもりという、まさに「基礎」と呼ぶに値する内容です。

個人的には、サブルーチンのハンドラ記述は、あまりバリエーション豊富な記法を採用すべきではないと思っていて、本Blogに掲載のリストのように、極力単純な記法を採用しています。凝ったハンドラ記述をしたところで、生産性なんてこれっぽっちも向上しません。保証します。

ただ、海外で癖の強いScriptを書く連中がいて、とくにキーボードショートカットやファンクションキーからAppleScriptを呼び出すようなツールのコミュニティにいる連中の書くScriptは「なまり」がすごくて、読みにくくて頭痛がします。そうした際に、サブルーチン呼び出し記述部分を「解読」するためのスキルは、欠かせないものとなることでしょう。

目次

■AppleScriptのサブルーチン、ハンドラとは?

どの言語にもあるサブルーチン、ハンドラ
ハンドラ内の変数の取り扱い
tellブロック内で記述するハンドラ呼び出し①
tellブロック内で記述するハンドラ呼び出し②
イベントハンドラ①
イベントハンドラ②

■基礎的なハンドラ記述 on subHandler(param)

基礎的なハンドラ記述
ハンドラの情報を取得①
ハンドラの情報を取得②

■分割パラメータつきハンドラ記述 on subHandler:param

分割パラメータつきハンドラ記述

■パターン化位置パラメータつきハンドラ記述on hello(a, b, {length:l, bounds:{x, y, w, h}, name:n})

パターン化位置パラメータつきハンドラ記述

■ラベルつきハンドラ記述

パラメータの受け渡し方で2つに大別される
ラベル付きパラメータ

■予約語をオーバーライドしてハンドラ宣言

コマンド予約語をオーバーライド
オーバーライド可能な標準搭載の予約語
オーバーライドの有効範囲①
オーバーライドの有効範囲②
オプションすべてに対応するとけっこう大変

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(22)スクリプトメニューの使い方

Posted on 7月 21, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScript基礎テクニック集」の第22巻、「スクリプトメニューの使い方」です。PDF 33ページ。サンプルScriptのZipアーカイブを添付。

→ 販売ページ

macOSには「ジャンルごとに区分け」「アプリケーションごとに内容を切り替え」「フォルダ構造がそのまま階層メニューとして表示される」スクリプトメニューという、実行専用の機能を標準搭載しています。

決められたフォルダ以下の内容がそのままメニューに表示され、フォルダに入れたAppleScriptのファイル名やフォルダ名がそのままメニュー項目として表示され、選択したAppleScriptを実行できるようになっています。

ただ、漫然とAppleScriptをスクリプトメニューに入れただけでは、時間がたつと処理内容を忘れてしまいがちです。そこで、スクリプトメニューからAppleScriptを選択する際に装飾キー(Control)を押しておくとAppleScript書類の「説明」欄の内容をダイアログ表示するライブラリを本書執筆時に新規作成。これで、「何を入れたか忘れがち」なスクリプトメニュー生活が快適になります。

また、このスクリプトメニュー用のテンプレートを添付し、スクリプトエディタの「テンプレートから新規作成」でヘルプ表示対応のAppleScript書類を作成できます。

便利なスクリプトメニューを今日からはじめてみましょう! PDF 33ページ、サンプルScript Zipアーカイブ添付

目次

■階層メニュー型AppleScriptランチャー「スクリプトメニュー」

標準搭載、メニューからScriptを実行する機能
タイプ別、さまざまなAppleScript実行環境
OS標準搭載AppleScript実行環境の比較
スクリプトメニューの有効化
3段階で管理されるスクリプト・フォルダ
アプリケーション専用のスクリプトフォルダを作成
スクリプト実行中のインジケータ
スクリプト以外のものも入れられます
装飾キーを押しながらScriptを実行すると…

■スクリプトメニューを構成

スクリプトメニューを構成すること自体は簡単
階層フォルダを利用してファイル名を記述
パラメータを書き換えたスクリプトを複数用意

■スクリプトメニューならではの利用ノウハウ

間違ったオブジェクトの選択に備える
フローティングパレットを利用したほうがよい例も
ヘルプ機能がないことへの備え
AppleScriptでヘルプ表示を実装
テンプレートからヘルプつきスクリプトを新規作成
スクリプトメニューQ&A
機能強化版のシェアウェア「FastScripts 3」

Posted in Books news PRODUCTS | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(21)Cocoa Scripting

Posted on 7月 15, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScript基礎テクニック集」の第21巻、「Cocoa Scripting」です。PDF 42ページ。サンプルScriptのZipアーカイブを添付。

→ 販売ページ

Cocoa Scriptingについては、既刊の「Cocoa Scripting Course」があり、同書の冒頭の入門部分を再編集したものが本書です。

macOS 10.10以降、すべてのAppleScriptの実行環境において、Cocoa呼び出しの機能がサポートされました。いわゆる、Cocoa-Bridgeされた言語になったのです。

Cocoaのすべての機能を呼び出せるわけではないですし、主にmacOSのFoundationとAppKitの範囲内ですが、一部の機能が呼び出せるだけでも機能は膨大で、かつ、これまでに無理やり間に合わせで組んでいたような内容が、本物を呼べるようになり、AppleScriptの世界に質と量と処理速度の面で大きな変化をもたらしました。

Cocoaのオブジェクトに特有の挙動……オブジェクトの生成に専用のメソッドを利用し、属性値を取り出すのにもメソッド呼び出しが必要。複数のオブジェクトが同じことを確認するのに、上位クラスで定義されている照合メソッドを呼び出す必要があるなど、実際に使ってみるとそんなに難しくはないと感じました(量が多くて面倒なだけで)。

目次

■Cocoa Scriptingとは?

Cocoa Scriptingは何のために?
Cocoa Scriptingってどういうもの?
Cocoa Scriptingの実際
Cocoa Scriptingの威力
Cocoa Scriptingのメリット
Cocoa Scriptingに必要なもの
Cocoa Scriptingまとめ
Cocoa Scripting9つの誓い

■Cocoa Scriptingに適したmacOSの選定

Cocoa Scripting環境の進化の歴史
Cocoa Scriptingに適したmacOS
参考資料:AppleScriptランタイム環境情報
SIP解除の是非

■Cocoa Scriptingのプログラミングスタイル

開発・実行環境のちがい
処理手順の違い
メインスレッド実行が必須な機能への対処
delegation, notification
実行環境の違いによる書き換え
AppleScriptでCocoaオブジェクトを呼び出すと…
サブルーチン記述
Objective-C風ハンドラにおけるme/my記述
クラス拡張(継承)
高速なCocoa Scriptを書くためには
アプリケーションとの相互乗り入れに注意
暗黙の型変換
一部のAppleScript内蔵コマンドで書き換えが必要
計算の優先順位を示すカッコを修正
オブジェクトの数え方
Application ScriptingとCocoa Scripting

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(20)コンパイル(構文確認)

Posted on 7月 14, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScript基礎テクニック集」の第20巻、「コンパイル(構文確認)」です。PDF 32ページ。

→ 販売ページ

スクリプトエディタのウィンドウに、思わせぶりに配置されている「コンパイル」コマンドのボタン。

この「コンパイル」というのは、世間一般的には、プログラム言語を実行コードに変換する作業です。SwiftやObjective-Cなどの言語で「コンパイル」といったら普通は実行コードへの変換です。

しかし、スクリプト言語で、かつインタプリタ(逐次実行)型言語であるAppleScriptにおいて、その意味は少し異なっています。AppleScriptのコンパイルとは、構文確認+中間コードへの変換です。

また、AppleScriptの実行処理系が演算の優先順位の指定を必要とした場合には、どこか適当な(正確ではなくあてずっぽうという意味で)場所にカッコを補います。

コンパイル時の構文チェックは、AppleScriptの最低限のお約束的な文法チェックだけなので、対象のアプリケーションのオブジェクト階層や、コマンドを実行する対象のオブジェクトが正しいか、といった厳密なチェックは行われません。実行して確認する必要があります。コンパイル(構文確認)の挙動は独特で、誰もが知っておくべき内容です。

目次

■コンパイル(構文確認)とは?

AppleScriptのコンパイル(構文確認)とは?
最低限の構文チェック
ライブラリ、Frameworkのチェック
OS(AppleScript)互換性チェック
実行環境チェック
中間コードへの置き換え
構文色分け設定にもとづいて書式適用

■コンパイル(構文確認)で行われる入力内容補完

コンパイル(構文確認)時に大/小文字を書き換え
空白文字,インデント文字の置き換え
if, tell, repeatなどのブロックの入力補完
特殊記号の置き換え
パラメータのboolean表記を置き換え
列挙パターン表記の置き換え ほか

■コンパイル(構文確認)で行われる演算優先順位を示すカッコの補足

演算優先順位を示すカッコを補う①
演算優先順位を示すカッコを補う②

■コンパイル(構文確認)で行われる正しいアプリケーション名への置き換え

実行環境にアプリケーションが存在しない場合
バンドルIDが同じで名称変更になった場合

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(19)リモートコントロール

Posted on 7月 11, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第19巻、「リモートコントロール」です。PDF 37ページ、付録AppleScriptのZipアーカイブを添付。

→ 販売ページ

AppleScriptは、リモートコントロールを行うために作られた言語です。1台のコンピュータ上でスクリプトの実行環境と、操作対象のアプリケーションという別々のプロセスの間でメッセージを送り合って、制御を行います。その姿は、あたかも電話をかけて出前の注文をお願いしているかのようです。

1台のコンピュータ上ですら「通信」しているのですから、ネットワーク、主にLAN上で通信して他のコンピュータ上で起動しているアプリケーションとの間で通信して操作するのも同様に「通信」でできます。これがリモートApple Eventsです。

柔軟に通信を行って、イベントを投げ合うのがAppleScriptの本来の姿ではあるのですが、昨今のセキュリティ問題の高まりにより、あまり野放図に柔軟な処理ができないようにいろいろな制約が設けられるようになった……はずだったのですが、なぜかmacOS 10.13あたりからふたたび制限が緩和され、ネットワークごしのリモート・アプリケーション操作機能が復活しました。

いろいろ注意すべき点はありますが、使いこなすと便利で楽しいリモートコントロール。詳しく分かりやすく、誰も教えてくれない内容について、1冊まとめて説明いたします。

macOS 12.5 beta 5の不具合でAppleScriptはおろかドラッグ&ドロップでファイルのオープンができなくなるわ、Finderのtoolbarに登録したアイコンのクリックも3回目以降は効かなくなるわで、最悪の作業環境の中、LAN上の他のOSバージョンのマシンにリモートコントロールで作業を依頼していろいろ作っていました。

目次

■リモートコントロール入門

リモートコントロールのための言語
AppleScript実行時のリモートコントロールの詳細
通常のリモートコントロールのイメージ
同一マシン上のリモートコントロールのイメージ
リモートマシンのリモートコントロール
リモートAppleEventsの歴史

■ローカルマシン上の常駐アプレットをリモートコントロール

AppleScriptと常駐アプレットの間で通信する
アプリケーション操作と同じ呼び出しも可能

■ローカル・マシン上の他のユーザ・アカウントで動作中の常駐アプレットをリモートコントロール

他のユーザの常駐アプレットをリモートコントロール
他のユーザに切り替えて常駐アプレットを実行
同一マシン上の他のユーザのプロセスを指定

■他のマシン上の常駐アプレットをリモートコントロール

操作対象となるコンピュータの名前を調べる
コンピュータ名/Bonjour名は編集可能
対象マシンのユーザ名を確認
例:macOS 10.15以降のユーザ名制限解除
ネットワーク上の他のマシン上のアプレット操作
リモート・マシンの指定方法
リモートApple Events操作時の注意点

■他のマシン上のアプリケーションをリモートコントロール

他のマシン上のアプリケーションのリモートコントロール
リモートコントロールを行うべきか、べきでないのか?
対象マシン上のアプリケーションをコントロール

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(18)グラフ表示ダイアログ

Posted on 7月 6, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第18巻、「グラフ表示ダイアログ」です。PDF 37ページ、付録AppleScriptのZipアーカイブを添付。

→ 販売ページ

地味で控え目なAppleScriptにおいて、ダイアログ上でアニメーション表示可能なグラフを表示できるようになったのは、ごくささいな小さな発見があったためです。

macOS 10.10以降ですべての実行環境でサポートされるようになったCocoa呼び出し機能。当然WebViewも生成して表示可能なことはわかっていました。ところが、標準的なNSWindowの上にWkWebViewを配置して初期設定を行なっただけでは、WkWebView上のイベント回しが効かず、アニメーション表示は行えませんでした。

ところが、そんな状況を打破したのはNSAlertダイアログ。ごくごく限られたUIを乗せて利用するようにメーカー側から指導されてきた、誰も見向きもしなかった間に合せのダイアログ表示インタフェースです。

ところが、このNSAlert上でWkWebViewを表示すると、Webコンテンツのイベント回しをきちんと処理して、グラフ表示アニメーションやマウスによる操作、マウスカーソル移動のマウスオーバーのイベントにも反応することがわかりました。

ここから、さまざまなJavaScript製グラフ表示ライブラリを試行錯誤し、今日ではテキストエディタ上の選択範囲のテキストの文字種別を円グラフでアニメーション表示するといった、きわめて身近で日常的な用途に手軽にグラフ表示ダイアログが利用されるようになりました。

このやり方について、基礎的なところから詳細に解説を行い、実際に動くコードを提示し、macOS上のさまざまな実行環境での状況をご紹介しています。

■グラフ表示ライブラリでダイアログ上にグラフ表示

グラフ表示ダイアログの全体像
グラフ表示ダイアログの構成技術
組み立てるWeb系データの構造
CDN上のグラフ表示ライブラリを呼ぶ
Web表示部品をダイアログ上に表示
JavaScriptで扱えるデータを組み立てる
AppleScriptのバンドル中からhtmlを読み込む
HTMLテンプレートファイルを準備

■Webダイアログ表示ライブラリを呼び出し

HTMLテンプレートをまとめる作業
JavaScript書き換え例
Webダイアログで
さまざまなグラフを表示
AMCharts:円グラフ
AMCharts:棒グラフ
AMCharts:ワードクラウド
AMCharts:世界地図+国選択
AMCharts:世界地図(ドリルダウン)+国選択

■さまざまなランタイム環境でWebダイアログ表示を実行

特殊なAS実行環境ではさらなる変更も必要
Automator環境では、表示されない
ショートカット環境では、表示されない
Switch Control環境では表示OK!
Service Station環境で動作
Stream Deck環境で動作
FileMaker Pro環境では動く
Visual Studio Code環境で表示OK(一応)

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(17)リスト(配列)

Posted on 7月 1, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第17巻、「リスト(配列)」です。PDF 35ページ、付録AppleScriptのZipアーカイブを添付。

→ 販売ページ

AppleScriptにも配列変数はあります。その名も「リスト型変数」、一般的には「リスト」と呼ばれています。

AppleScriptのリストに対して、他のプログラミング言語と比べて「配列の要素が1から始まるなんて信じられない!」という意見も見かけますが、0で始まる(0-based index)か、1で始まる(1-based index)かの違いだけです。

リスト(配列)を使った基礎的な処理、要素の取り出しやループ、削除、しぼりこみ、ソートなどの定番をご紹介。 PDF 35ページ、サンプルScriptのZipアーカイブつき

目次

■リスト型変数=配列〜超基礎編

AppleScriptの配列=リスト型変数
リストの名前の付け方
リストの要素指定①
リストの要素指定②
リストに入れられるデータ

■リスト型変数=配列〜よくある処理

リストの内容でループ
複数の配列を同時にループ
指定要素を削除
指定アイテムを指定アイテム番号に挿入
配列の添字っぽい書き方でアクセス

■リスト型変数=配列〜しぼりこみ

2次元リストから要素の内容を部分一致で抽出①
2次元リストから要素の内容を部分一致で抽出②

■1次元リスト型変数〜ソート

1次元リスト、数値ソート(昇順)
1次元リスト、数値ソート(降順)
1次元リスト、数値ソート(昇順/降順)
1次元リスト、カスタムソート順でソート

■2次元リスト型変数〜複数キー指定ソート

2次元リスト、数値ソート(昇順)(1/3)
2次元リスト、数値ソート(昇順)(2/3)
2次元リスト、数値ソート(昇順)(3/3)
1次元リスト、数値ソート(昇順/降順)

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(16)スクリプトエディタの使い方

Posted on 6月 28, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第16巻、「スクリプトエディタの使い方」です。PDF 38ページ、付録AppleScriptのZipアーカイブを添付。

→ 販売ページ

スクリプトエディタは、Classic Mac OSのスクリプト編集プログラムをAppleがMac OS Xに移植したものです。

初期にはCarbonベースで書かれ、v10.4でCocoa&Universal Binary化、v10.6で64bit化。v11でApple Silicon/Intel 64のUniversal Binary化と、Mac上のすべての移行を経験してきた猛者です。

原始時代のスクリプト編集プログラムには、検索機能すら実装されておらず、Script Debuggerとの差は明白でした(仕事で使うならScript Debuggerが必要、という状況はいまでも変わりません)。

そんなスクリプトエディタも、Mac OS X 10.4で32Kバイト以上のスクリプトが編集可能になり、AppleScriptからのコントロールが行えるようになったことで、「使える道具」になってきました。

同時にURLイベントに対応したことで、筆者のBlog「AppleScriptの穴」掲載の、リンクのクリックで内容が転送されるプログラムリストをWeb上で共有できるようにもなりました。

本書を通してご覧になると、「これは拾い物!」「こんなの知らなかった!」というスクリプトエディタの機能が見つかることでしょう。

本書付録には、スクリプトエディタのコンテクストメニューから起動するスクリプト記述支援AppleScript集「Piyomaru Script Assistant v2.1」、各種macOS標準搭載アプリケーション用のテンプレートAppleScript集を添付。

さまざまな角度から、スクリプト記述のための生産性を向上させる仕組みを提供しています。

目次:

■編集環境としてのスクリプトエディタ

スクリプトエディタの機能一覧
スクリプト新規作成/テンプレートからの作成
ユーザー用Scriptテンプレートの追加方法
Cocoa-AppleScriptアプレットの新規作成
URLイベント受信
短縮入力の展開
「説明」欄の編集
構文書式設定
コンパイル(構文確認)
バンドル内ファイル編集
Info.plist編集
スクリプトアシスタント入力
ヘルプの閲覧
AppleScriptからの操作
新規作成スクリプトのデフォルトウィンドウ指定
その他の機能

■実行・デバッグ環境としてのスクリプトエディタ

AppleScriptの実行環境における位置付け
実行/強制メインスレッド実行
ログ表示/履歴管理
スクリプトメニューの有効化/無効化

■用語辞書閲覧環境としてのスクリプトエディタ

用語辞書の閲覧
ライブラリ管理

■保存、書き出し環境としてのスクリプトエディタ

スクリプト保存
スクリプト書き出し/コード署名

Posted in Books news | Tagged 10.15savvy 11.0savvy 12.0savvy Script Editor | Leave a comment

新発売:AppleScript高速化テクニック

Posted on 6月 20, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。「AppleScript高速化テクニック」です。PDF 86ページ、サンプルAppleScriptのZipアーカイブを添付。

→ 販売ページ

本書は、高速なAppleScriptを書くための実践的なノウハウをまとめた、おそらく世界で初めての、現時点では唯一の書籍です。

AppleScript自体はインタプリタ型の処理系であるため、実行速度はSwiftやObjective-Cなどで書かれたプログラムにスピード面では遠く及びません。

ただし、処理系そのものや周辺環境に対する十分な理解をともなわずに書かれたScriptは、本来期待されるレベルを大きく下回るスピードしか出せません。大変残念なことです。AppleScriptはプログラミング言語というよりも、OSに対するシェルであるとか、一種のアプリケーションとしての性格が強いものです。そこには、明確な「使いこなし」のノウハウが存在しますし、癖もあります。

残念な状態に書かれたAppleScriptのプログラムは、自動車でいえば整備不良、ガス欠で、洗車も行われずに野ざらしになっている状態です。

本書は、いわばそうした残念な状態の自動車に対しての、整備、ガソリン補給、オイル交換や洗車についてご提案するものです。

実機で実際にAppleScriptのプログラムを動かし、実行時間を計測。どの程度速くなるか、そのメリットを数値でご理解いただけることでしょう。

目次

■AppleScriptは遅いのか?

書き方によって速度差が出やすいAppleScript
①大規模データ操作時の固有ノウハウ
②GUIアプリ操作の固有ノウハウ
③各アプリ固有の操作ノウハウ
④適材適所
⑤連携運用できるプログラムなどへの知識
まとめ:AppleScriptは遅いのか?

■遅いScriptを実際に高速化

とても遅くて下手なScriptのサンプル
素人Scriptからの高速化:さまざまな方向から
Script高速化の第一歩は「時間計測」
下手なScriptは、少ないデータ件数では目立たない
高速化ポイント1:一括取得
高速化ポイント1:一括取得
高速化ポイント2:受け取ったデータの保持
高速化ポイント3:受信データの変換
高速化ポイント4:rangeの変換処理を自前で
素人Scriptを高速化①:データ保持方法を変える
素人Scriptを高速化②:通信頻度を減らす

■高速化しやすい処理の傾向

AppleScriptの処理で高速化しやすい箇所
Finderをファイル処理に使わない①
Finderをファイル処理に使わない②
1次元リスト(配列)のソート
1D Listのソート
1D Listのソート
2次元リスト(配列)のソート
2D Listのソート(1/2)
2D Listのソート(2/2)
2D Listのソート
アプリケーションのオブジェクトへのアクセス
画面部品を強引に動かすGUI Scripting
指定の値をクリップボードに入れる
遅くなりがちな処理を避ける
漠然と「遅い」と言われた処理の傾向
スクリプトエディタとAppleScript間の通信①
スクリプトエディタとAppleScript間の通信②

■データ量と処理内容のバランスを取る

複数アクセス方法すべてで実行速度を計測
リスト(配列)データの要素数によって変わる選択肢
1000〜3万件文字列追加+時間計測
まとめて操作できるデータを個別操作
要素が連続する部分をリスト上で検出
まとめて書式設定(1/2)
まとめて書式設定(2/2)
RTF読み取りライブラリ(1/2)
RTF読み取りライブラリ(2/2)
RTF読み取りライブラリ(rtfToDict)の結果
非同期実行モードの利用
Numbersの表のセルを100個埋めるテスト
処理対象に応じて因数分解を行う部品を変更

■処理内容を見直す &使用部品を変える

AppleScriptの速いバージョンのmacOSを選択
処理に使用する部品を変更(乱数生成)
処理に使用する部品と方式を変更
処理モジュールを一体化
使用するマシン構成を変更:複数のマシンで分散処理
使用するマシンを変更:本当に速いマシンを使う

■ランタイム環境の選択

AppleScriptのさまざまな実行環境
AppleScript実行環境の名称を取得する方法
エディタ①
エディタ②
エディタ③
アプレット,ドロップレット①
アプレット,ドロップレット②
メニュー実行①
メニュー実行②
メニュー実行③
その他実行プログラム①
その他実行プログラム②
その他実行プログラム③
アプリケーション内蔵メニュー①
アプリケーション内蔵メニュー②

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(15)フォルダアクション

Posted on 6月 13, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第15巻、「フォルダアクション」です。PDF 33ページ、サンプルAppleScriptのZipアーカイブを添付。

→ 販売ページ

フォルダアクションは、任意のフォルダにAppleScriptを添付して、ユーザーがファイルを入れたり削除したり、フォルダをオープンしたりクローズすると指定のAppleScriptが実行されます。

実際には、共有フォルダに対してフォルダアクションを設定、多くのユーザーが所定のファイルをフォルダに入れることで、提出処理を簡略化したり、時間のかかる処理を集約してサーバー機で行わせる、所定の処理を確実に所定のパラメータや手順で行わせるといったシステムが使われてきました。

本書では、Macの便利で強力な機能である本フォルダアクションについて、ローカルのMac上に設定する方法について、基礎的な内容をご説明しています。

目次:

■フォルダアクションの歴史と仕組み

フォルダアクションとは?
フォルダアクション運用例
Classic Mac OS時代から続く伝統の機能
フォルダアクション関連ツール、ファイル
フォルダアクションScript中で利用可能な技術

■フォルダアクションの設定方法

フォルダアクション設定の使い方①
フォルダアクション設定の使い方②
フォルダアクション設定の注意点①
フォルダアクション設定の注意点②

■フォルダアクション自体のAppleScriptからの操作

Script側から行えるフォルダアクション操作①
Script側から行えるフォルダアクション操作②
Script側から行えるフォルダアクション操作③
Script側から行えるフォルダアクション操作④

■フォルダアクションの種類と書き方

イベントハンドラのパラメータ内容①
イベントハンドラのパラメータ内容②
実例1:入ってきたフォルダ中のPDFを大きさで分類①
実例1:入ってきたフォルダ中のPDFを大きさで分類②
実例1:入ってきたフォルダ中のPDFを大きさで分類③
実例2:指定フォルダのウィンドウ操作を受信

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(14)ファイルサーバーのマウント

Posted on 6月 6, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第14巻、「ファイル処理」です。PDF 32ページ、サンプルAppleScriptのZipアーカイブを添付。

→ 販売ページ

サーバー上の任意のマウント対象フォルダの情報を確認する方法がそっけなくて(地味で)、知らないと手も足も出ないという状況でもあります。

サーバー上の特定のフォルダをドライブとしてマウントする、という些細な処理ではあるものの、知っておくべき要点が多いのでまとめてみました。

続刊として予定しているeppc(リモートAppleEvent)について、このファイルサーバーのマウントの延長線上にあるため、eppcを使いたい人にはマスターしておくべきテーマといえるでしょう。

目次:

■macOSのファイル共有の仕組み

ファイル・サーバーとクライアントの関係
macOSのバージョンとファイル共有機能の変化
資料:ファイル共有プロトコルの歴史
共有する側(サーバー)の共有設定
共有する側(サーバー)の共有設定
共有URLの確認①
共有URLの確認②
共有URLの確認③

■サーバー・マシン名の確認

サーバー名の確認
サーバーURLの表記方法

■LAN上のサーバーの存在確認

LAN内のサーバー・プロトコル
指定プロトコルのサーバー一覧の取得①
指定プロトコルのサーバー一覧の取得②
指定プロトコルのサーバー一覧の取得③
指定プロトコルのサーバー一覧の取得④

■AppleScriptのmount volumeコマンド

mount volumeコマンド
指定のサーバー/フォルダをマウント
ファイルサーバーちょっといいノウハウ

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

最近お蔵入りした企画

Posted on 6月 2, 2022 by Takaaki Naganoya

やたらと本ばかり書いている昨今ですが、すべての企画が通っているわけでもなく、チーム内の会議で没になったものもいくつかあります。

最新の、没になりたてホヤホヤの活きのいいピチピチの没企画がコレ(↑)です。

以前から「TerminalからMacを使う、Unix系やWindows系の開発者がいるらしい」「ASを使ってみたいらしいがよく分からないらしい」という、割とふわっとした情報をもとに企画を立てていました。

ただ、真面目に書くと、けっこうな分量(Webブラウザ本ぐらい)になり、それ相応の時間がかかることがわかりました。
そこまで手間をかけても、そこまで強力なニーズがあるのかは不明です。

そこで、急きょこの本のテーマを最小限度にまで縮小して、「AppleScript基礎テクニック集」に再編集したのが、

コレです。この本だけでも、ASからdo shell script経由でshellを呼び出すためのノウハウや、Terminal内のshell commandからASを呼び出す際に知っておくべきことなどを網羅できています。

この「Terminalから使う本」から「AppleScript基礎テクニック集」本に変換する際に削除した要素が、

・さまざまなデータ型をパラメータに指定してやりとりするための支援プログラム

といったあたりです。

配列でデータを渡すのにJSON形式に変換して、結果もJSONで返すとか、そういうデータ変換を行うライブラリを「本」というかたちで提供しようかと考えてみたものの、これもやはり「それなり」に時間がかかるのでなんとも。

「AppleScript基礎テクニック集」のshell script編で様子を見ています。現時点ではお蔵入り判定です。

ずいぶん昔(「AppleScript最新リファレンス」を書いた直後)から企画を温めてはいるものの、なかなか形になりません。

Posted in Books | Leave a comment

新発売:AppleScript基礎テクニック集(13)ファイル処理

Posted on 6月 1, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第13巻、「ファイル処理」です。PDF 33ページ、サンプルAppleScriptのZipアーカイブを添付。

→ 販売ページ

AppleScriptによるファイル処理は、MacBook AirからはじまったSSD標準採用、macOS 10.10以降のCocoa Scriptingの標準化、高速なApple Siliconへの移行なども相まって、非常に高速なものとなってきました。とくに、NSFileManager経由で処理をしたときの速度がすさまじく高速です。最新のOS、最新のマシンの組み合わせで必携の一冊!

目次:

最近のmacOSのファイル処理事情

AppleScriptのファイル処理には3通り
フルディスクアクセスの設定を
64ビット化されてFinderは遅くなった
どこで差がつく? ファイル処理
複数の条件をつけてFinderでファイル取得

条件抽出

ファイル情報の抽出
Finderラベルによる抽出

リネーム(名称変更)

ファイルの名称変更=リネーム
フォルダの名称変更=リネーム

コピー(複製)

ファイルのコピー
フォルダのコピー

移動

ファイルの移動
フォルダの移動

削除

ゴミ箱への移動を行うだけの「ファイル削除」
ファイルの完全削除
ゴミ箱への移動を行うだけの「フォルダ削除」
フォルダの完全削除

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

人類史上初、魔導書の観点から書かれたAppleScript入門書「7つの宝珠」シリーズ開始?!

Posted on 5月 30, 2022 by Takaaki Naganoya

いつものようにコードレス糸電話(FaceTime Audio)で企画会議を行なっていたら、「プログラミングを魔導書の形式で書くことが可能なのではないか?」というアイデアが登場。その場でアイデアスケッチを行い、あれよあれよという間に、実物ができてしまいました。

→ 販売ページ

ノリと勢いだけで作ってしまった1冊ですが、ビジュアル要素多めでまとめられました。ただ、宗教的なアレとかナニとかを完全に無視して作ったものなので、日本国内でしか流通させないほうがよいでしょう。

本書は、プログラミングという魔法について、「魔導書」の観点から記した人類最初の書物である。

難解なプログラミングを、なじみ深い魔導書の観点から説明すると親しみやすくなるのだろうか、という1つの魔術モルモット実験でもある。

本書で扱う内容はごくごく簡単で基礎的な内容だが、このぐらいにしぼって解説すれば難しく見えないという7テーマ、七宝珠である。

「習うより慣れろ」ということわざがあるように、難解な魔術であっても苦手意識を持たずに「慣れる」ことは重要である。 本書をもってしても、真の魔道士を育成することは難しい。だが、「だいたいこんなかんじ」という感覚をつかむためには、このぐらいの分量に抑えることが肝要だろう。

PDF 31ページ

目次

■魔導書「7つの宝珠」

神(Computer)との対話を行う人の子の書
失われし魔法の7つの宝珠を求めて
変数と代入文という最初の宝珠
if文〜条件分岐という宝珠
繰り返しループ 体力を削らせない宝珠
配列変数 詠唱呪文の機能を高める宝珠
コメント文 失われた知恵の宝珠
ログ表示 簡単に変数の中身を確認する宝珠
終了 そこで呪文実行を止める宝珠

■第1の宝珠 変数と代入文

神の言葉から人の子の言葉への移行
巻物で満ち溢れる人の子の世
牛飼いを羊飼いに変える変数
変数に牛や羊を入れるのが「代入」
変数の中に何がある?

■最短詠唱呪文集

魔術入門〜最短詠唱呪文
警告音を鳴らす魔術「beep」
現在の日付を知る魔法「current date」
クリップボードの内容を調べる魔法
時間待ちを行う魔法「delay」
ゆうしゃ(=あなた)のステータス

Posted in Books news | Tagged 10.13savvy 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(12)Unix shell commandの利用

Posted on 5月 26, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第12巻、「Unix shell commandの利用」です。PDF 34ページ、サンプルAppleScriptのZipアーカイブを添付。

→ 販売ページ

Unix shell commandの利用といったときに、「AppleScriptからdo shell scriptコマンドでshell commandを呼び出す」話と、「shell commandやshell scriptの中でAppleScriptで書いたプログラムを呼び出す」という、まったく価値観の異なる別の話が含まれています。

本書は、これらのまったく別な話に含まれている概念やノウハウを整理し、わかりやすく具体的にその方法や制限についてご紹介する本です。

目次

■Terminal環境とdo shell script環境の違い

shell scriptをAppleScriptと組み合わせるために
ターミナルに書類のパスを入力する方法
Terminalからプロセスの確認と終了を
Terminalとdo shell sciptの環境変数
Terminal.appをAppleScriptで操作できる①
Terminal.appをAppleScriptで操作できる②

AppleScriptからshell scriptを呼び出す

do shell scriptコマンド
パス形式変換
Terminal.app上と同じ環境変数を使用するには
参考資料:新規インストールしたユーザーの環境変数
パラメータの与え方について
do shell scriptコマンドちょっといいノウハウ
コマンドライン呼び出しプログラムをScriptに同梱

shell scriptからAppleScriptを呼び出す

AppleScript関連のshell command
shell scriptからAppleScriptを呼び出す方法①
shell scriptからAppleScriptを呼び出す方法②
パラメータ指定できるAppleScriptの書き方
AppleScriptライブラリを呼び出せる?
パイプで指定した内容を受信できる?
GUI Scriptingを利用できる?
ホームディレクトリ下のFrameworkを呼べる?

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

新発売:AppleScript基礎テクニック集(11)AppleScriptアプレットとドロップレット

Posted on 5月 20, 2022 by Takaaki Naganoya

電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第11巻、「AppleScriptアプレットとドロップレット」です。PDF 41ページ、サンプルAppleScriptのZipアーカイブを添付。

→ 販売ページ

本シリーズも、着手した頃には「そんなに細切れのテーマで書けるのか?」「そんな作り方で作れるはずがない」といった意見が集まっていたものですが(チーム内の打ち合わせ時には割と批判的です)、実際に作り出したらトンでもなく「書くべきこと」があって、書けば書くほど新たなテーマが見つかるという恐るべき状態。

今回の「アプレット」「ドロップレット」については、あまり振り返ったことがなかったのですが、いざ書いてみると尋常でないほどの情報が溜まっていました。

スクリプトエディタとScript Debuggerという2つの開発環境のちがい、アプレット、ドロップレット、Cocoa-AppleScriptアプレット、Script Debuggerの拡張ドロップレットなどなど。常駐タイプのアプレットに、タイマー割り込み処理のアプレット。アプレットのアイコンのカスタマイズに、アプレット内にAppleScriptライブラリを同梱する方法、Cocoa Frameworkを入れて呼び出す方法など、盛りだくさんな内容をお送りしています。

目次

■アプレット

AppleScriptをアプリケーション形式で書き出し
AppleScriptアプレットの種類
AppleScriptアプレットの作成方法
AppleScriptアプレットのオプション指定
常駐型AppleScriptアプレットの作成方法
常駐型AppleScriptアプレットの記述
アプレットの「初期画面」を指定
「初期画面」に画像をペーストした場合の動作
アプレット/ドロップレットのユーザーインタフェース
資料:スクリプト/アプレットのバンドル構造
資料:アプレットのカスタマイズ①
資料:アプレットのカスタマイズ②
資料:アプレットのカスタマイズ③

■Cocoa-AppleScriptアプレット

Cocoa-AppleScriptアプレットの作成方法
参考資料:Delegateスクリプトの内容確認方法
参考資料:Delegateスクリプトのヘッダー内容
参考資料:Delegateスクリプトのハンドラ

■Script Debuggerのアプレット/拡張アプレット

AppleScriptアプレット(SD)の作成方法
AppleScript拡張アプレット(SD)の作成方法
AppleScript拡張アプレット(SD)の作成方法

■ドロップレット

AppleScriptドロップレットの作成方法
AppleScriptドロップレットの作成方法
ドロップレットによるファイルの受信
macOS 10.12以降の問題への対策ドロップレット
macOS 12.4上でドロップレット処理を実験

Posted in Books news | Tagged 10.14savvy 10.15savvy 11.0savvy 12.0savvy | Leave a comment

Post navigation

  • Older posts
  • Newer posts

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

Google Search

Popular posts

  • macOS 13, Ventura(継続更新)
  • アラートダイアログ上にWebViewで3Dコンテンツを表示(WebGL+three.js)v3
  • Xcode 14.2でAppleScript App Templateを復活させる
  • UI Browserがgithub上でソース公開され、オープンソースに
  • macOS 13 TTS Voice環境に変更
  • 2022年に書いた価値あるAppleScript
  • ChatGPTで文章のベクトル化(Embedding)
  • 新発売:AppleScriptからSiriを呼び出そう!
  • iWork 12.2がリリースされた
  • 従来と異なるmacOS 13の性格?
  • 新発売:CotEditor Scripting Book with AppleScript
  • macOS 13対応アップデート:AppleScript実践的テクニック集(1)GUI Scripting
  • AS関連データの取り扱いを容易にする(はずの)privateDataTypeLib
  • macOS 13でNSNotFoundバグふたたび
  • macOS 12.5.1、11.6.8でFinderのselectionでスクリーンショット画像をopenできない問題
  • 新発売:iWork Scripting Book with AppleScript
  • ChatGPTでchatに対する応答文を取得
  • Finderの隠し命令openVirtualLocationが発見される
  • macOS 13.1アップデートでスクリプトエディタの挙動がようやくまともに
  • あのコン過去ログビューワー(暫定版)

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1390) 10.14savvy (586) 10.15savvy (434) 11.0savvy (277) 12.0savvy (186) 13.0savvy (59) CotEditor (60) Finder (47) iTunes (19) Keynote (99) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (41) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (117) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (57) Pages (38) Safari (41) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKUserScriptInjectionTimeAtDocumentEnd (18) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • 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
  • rectangle
  • 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年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 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