WindowsからのZipファイルを文字化けしないで解凍するには?

WindowsへMacから文字化けしないZipファイルを手渡すためにはいくつかの方法があることを以下のエントリに書きましたが、逆に、Windowsから手渡されたZipファイルをMacで文字化けしないで解凍するためには、Mac標準のアーカイブユーティリティ.appではダメです。

WindowsマシンへZipファイルを渡すには
WindowsマシンへZipファイルを渡すには – 2
WindowsマシンへZipファイルを渡すには – 3

「20180111171620」という日付を名前にしたZipファイルが宅ふぁいる便経由で送られてきたのですが、Mac標準のアーカイブユーティリティ.appで解凍すると、上の図のように文字化けして開いて見るまで内容がわかりませんし、ファイル名は開いたところで不明のままです。

SHIT_JIS(CP932)でエンコードされたファイル名をUTF-8にデコードして解凍するツールを見つけないといけない訳です。

アーカイブされたファイル/フォルダのエンコーディングを自動判別して解凍してくれるツールがあっても良さそうなものですが、私が知る限りでは、紹介する“The Unarchiver.app”<https://theunarchiver.com>一択のようです(他にもあるはずなのですが…、あってもいいはずなのですが…)。

 

使い方

ダブルクリックで起動した場合、図のようにPreferencesウィンドウが開くので、慣れないとどうやって使うのか分からないかもしれません。図の一番上の項目の「zip」ファイルもチェックして、zipファイルの解凍も“The Unarchiver.app”に指定してしまうのも手でしょう。そして、任意のzipファイルを選択して、“情報を見る”からデフォルトのアプリケーションとして指定すれば、ダブルクリックでの起動で解凍アプリケーションとして“The Unarchiver.app”が使われるようになります。これが一番シンプルで面倒がないです。
個別に判断して、標準のアーカイブユーティリティ.appとThe Unarchiver.appを使い分けるのであれば、The Unarchiver.appのアイコンの上にアーカイブファイルをドロップするか、アプリケーションを指定して開くというのが一般的な使い方となります。

UTF-8以外のエンコーディングのzipファイルを解凍する際には、図のようなダイアログが出て、エンコーディングを確認してくるので、‘Japanese Shift JIS’を選択すれば文字化けしないで解凍できます。解凍後の表示サンプルが表示されますので、確認できる点も分かりやすいです。

ワークフロー、あるいはサービスを使ってThe Unarchiver.appを開く

Maczip4Win.appのワークフローと全く同じ手順で、ワークフローをAutomator.appを使って作成し、Finder上でアーカイブファイルを選択した状態でワークフローをメニューエクストラのスクリプトメニューから起動するといった方法が、私の場合は慣れで一番やりやすい方法です。
設定時のスクリーンショットを置いておきます。

広告

WindowsマシンへZipファイルを渡すには – 3 – windowszipというPHPファイル

「WindowsマシンへZipファイルを渡すには」というエントリで、MacZip4Win.appを紹介しましたが、この度、新たなツールを見つけました。「mac-zip-windowsのwindowszip」です。
分かりにくいですね。githubのmac-zip-windowsサイトで公開されている「windowszip」という名前のPHPファイルが、mac標準のzipに変わって「ウィンドウズに渡しても文字化けしないで解凍できる」zipファイルを作成してくれるというものです。
使い方などの詳細は作者のブログ「MacBookを快適に!快適なマックライフを~」にありますので、そちらを参照すれば分かると思います。
実行ファイル「windowszip」のダウンロードもgithub経由でなくてもブログから直接ダウンロードできるようになっています。

「mac-zip-windowsのwindowszip」の特徴

特徴は、以下の通りです。

・ __MACOSXフォルダを作りません
・ .DS_storeファイルは圧縮対象外
・ 日本語ファイル、日本語フォルダはそのまま日本語で文字化けしません(UTF-8-MACからShiftJIS(CP932)に変換されます)
・ .txt拡張子は自動でWindows改行(CRLF)に変換して圧縮します
・ 圧縮対象のフォルダ・ファイルにWindowsの禁止文字が含まれていたら圧縮を中止して知らせます
・ フォルダ・ファイルでShiftJISに変換できない箇所を表示し圧縮を中止します

インストール

ダウンロードした「mac-zip-windows-master.zip」ファイルを解凍し、その中の‘windowszip’ファイルを任意の場所に置けばいいのですが、私は‘/usr/local/bin/’に置くことにしました。この時、‘windowszip’ファイルに実行権を付与しておくことを忘れないでください(ターミナルから’chmod +x /usr/local/bin/windowszip’のようにするのもいいでしょう。私は、カラムファイルブラウザでやりますが…)。

コマンドの構文

$ /usr/local/bin/windowszip ‘圧縮したいフォルダやファイル名’

引数としてファイル/フォルダ名を渡せばOKです。

automator.appを使ってワークフローを作る

作者のブログでは、mac標準機能の“サービス”を使ってFinder上で‘windowszip’を利用する方法が記載されていますが、私は“ワークフロー”にして、メニューエクストラのスクリプトメニューから実行することの方が好みです。従って、“ワークフロー”を作成することにしました。

作者のブログにある“サービス”と異なるのは先頭のステップで、Finder上の選択項目をシェルスクリプトの実行ステップへ引き渡すステップだけです。
“サービス”と“ワークフロー”の、Finder上の選択項目をシェルスクリプトの実行ステップへ引き渡す方法の違いは、こちらでも記載していますので参考にしてください。

使ってみての印象

処理が速いのでいいです。
Windowsの禁止文字やShiftJISに変換できない文字が含まれていると処理を中止するというのも、慣れればOKです。
MacZip4Win.appのように強制的にzipに入れてしまうというのもケースによってはありだと思っていますが、これはケースによって使い分けることにします。
未だHigh Sierra 10.13でもMacZip4Win.appは動いてくれますが、いつか動作しなくなることがあるかもしれません。その場合でも、この‘windowszip’は基本的にPHPのクラスファイルなので“動作しない”というようなことにはならないでしょう。OSレベルのエンコーディングの扱いが変更になるなどの大きな仕様変更がない限り、長期的に使っていけるだろうと思います。
perl、php、JavaScriptなどで誰か作ってくれないかと思っていましたので、本当に作者に感謝です。

Script4HotKeyUtilsの内容更新と追加

Script4HotKeyUtilsの内容更新と追加

Script4HotKeyUtilsのエントリーで公開しているスクリプトを現在の環境(Sierra、High Sierra)に合わせて更新しました。
私の環境では、Spark用に書いたものですが、メニューエクストラのスクリプトメニューに入れれば、ショートカットは定義できませんが、プルダウンメニューからのそれなりの使い勝手にはなるでしょう。
スクリプトはそれぞれ編集可能となっていますので、環境に合わせて改変することができます。
自由に加工してください。

追加したものは以下の4つのスクリプトです。

  • mount volume.scpt

    ネットワークボリュームをマウントするためのスクリプトです。
    ‘smb’を使っていますが、‘afp’に置き換えても可です。
    環境に合わせて書き換えてください。

  • Safari clear history.scpt

    UIElementsを使って、Safariの”履歴を消去…”を実行します。

  • Safari->FireFox.scpt

    Safariで開いているページ(URI)を、FireFoxで開きます。

  • Type_テキスト.scpt

    設定した任意のテキスト(定型分)をカーソルのあるポイントへ挿入します。
    文字列の長さの制限はありません。


  • 2ndwindow.scpt

    前面のアプリケーションの2番目のウィンドウを選択状態(最前面)にします。

  • close button.scpt

    最前面のウィンドウのクローズボタンをクリックします。

  • Closeallbackground_windows.scpt

    前面にあるアプリケーションの最前面のウィンドウだけを残して、背後のウィンドウを全て閉じます。

  • Finder_Restart.scpt

    Finderを再起動するスクリプトです。

  • lastwindow.scpt

    前面のアプリケーション上で複数開いているウィンドウの最背面のウィンドウを選択状態(最前面)にします。

  • minimize button.scpt

    最前面のウィンドウの黄色い(最適化)ボタンをクリックします。

  • move selections to desktop.scpt

    Finder上で選択したアイテムをデスクトップに移動するためのスクリプトです。別ボリュームのアイテムはコピーになります。

  • open Favorites.scpt

    ‘~/Library/Preferences/Favorites/’フォルダを開くスクリプトです。

  • open Library folder.scpt

    ‘~/Library/’フォルダを開くスクリプトです。

  • open Preferences Folde.scpt

    ‘~/Library/Preferences/’フォルダを開くスクリプトです。

  • open selection using.scpt

    Finderで選択されたアイテムを指定されたアプリケーションで開くためのスクリプトです。

  • open System Preferences.scpt

    「システム環境設定」を開くスクリプトです。

  • quitall.scpt

    現在開いているアプリケーションを一括終了するためのスクリプトです。

  • ResetWindowSize*0.8.scpt

    前面のアプリケーションのウィンドウサイズを画面の横幅の80%に、縦はフルサイズにセットします。

  • side-by-side.scpt

    前面のアプリケーションの1番目と2番目のウィンドウを、画面2分割のサイズで左右に並べます。

  • switch to Finder and hide all.scpt

    Finderにスイッチして他のアプリケーションを隠します。

  • switch to next app.scpt

    順番にアプリケーションを切り換えるためのスクリプトです。
    現在開いているアプリケーションをリストアップして、次のアプリケーションに切り換えます。

  • switch to previous app.scpt

    順番にアプリケーションを切り換えるためのスクリプトです。
    現在開いているアプリケーションをリストアップして、一つ前のアプリケーションに切り換えます。

  • typeshortdate.scpt

    01.01.01の形式の日付データを最前面のアプリケーションにタイプします。

  • zoom button.scpt

    最前面のウィンドウの緑の(ズーム)ボタンをクリックします。

環境

macOS 10.12、13
System UIElementsを使っていますので、macOS 10.12、13では「システム環境設定」->「セキュリティーとプライバシー」->「プライバシー」タブで「SystemUIServer.app」にチェックを入れてください。

ダウンロード

http://amstudio.sytes.net/amweb/Script4HotKeyUtils2017.iso.zip

※Script4HotKeyUtilsの著作権は放棄いたしませんが、対価は不要です。自己責任で、自由にお使いください。
インターネット上のリンクは、作者への事前/事後の承諾は不要ですので、自由にリンクして下さい。

基本的に、再配布・転載は認めません。

保証

動作に関する保証はいたしません。また、使用によって生じたと思われるいかなる損害に対しても、作者は一切責任を負い ません。使用は御自身の責任において行なってください。

 

macOS High Sierraでのメモ

Backuplist+が漸くHigh Sierra対応しました

High Sierraにアップデートした途端に動かなくなってしまったBackuplist+ 8.5.7ですが、8.5.8がついに出ました<http://robdutoitsoftware.com>。
アップデート内容は、以下の通りです。

Updated for OS High Sierra 10.13
Fixed several bugs in High Sierra.
Changed some cloning behaviors for the new apfs file system introduced in High Sierra.
Fixed bug preventing remounting of encrypted sparse images.
New feature: You can now set up multiple backup tasks to run with one click or on schedule.
New feature: You can select multiple backup tasks in the task bar to run manually and in sequence.
Latest custom build of rsync 3.1.1 optimized for OS X.

複数のタスクを一括で実行できるようになったようですが、何よりもHigh Sierraで動くことと、APFSファイルシステムに対応してきたことが有難いです。
バインドされている‘rsync’は3.1.1で3.1.2でないことが若干残念ですが、オプションの‘-A’‘-X’がそのまま使えるカスタムビルドになっていることが有難いです。
因みに、自分で差分パッチを当てて3.1.2をビルドしてみたのですが、ACLsパッチでエラーが出てしまうので止む無くBackuplist+ 8.5.7にバインドされているrsync 3.1.1を‘/usr/local/bin/’にコピーして使っています。

Path Finder 7.6でHigh Sierra対応

Backuplist+ 8.5.7と共に、High Sierraにしてから焦ったことの筆頭がPath Finder 7.5が起動出来ないことでしたので、早い対応には感心しました。
Backuplist+ 8.5.7が動かない間、Path Finder 7.6の”File Synch”機能と自作のAppleScriptアプリケーションで同期を賄っていました。

その他

JapaneseIM.appで、「L」キーでラ行が直接入力できない仕様に変更されてしまった(らしい)こと(‘/System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/RomajiRule_Default.txt’の書き換えや、‘~/Library/Preferences/com.apple.inputmethod.Kotoeri.plist’のキーの追加などの前バージョンまでの有効な手法が無効化されているようです)などについては、もう少し検証する時間が欲しいので、ある程度の目処が立った頃にまたエントリーしようと思います。

macでFLACも音量調整したい?

MP3やaac(m4a)などはこのエントリで一応の決着はついていたのですが、最近入手するファイルの種類がFLACであることが多くなってきました。代表的なロスレスフォーマットですから、音質的には有り難いのですが、Playerの制約で諦めていたロスレスフォーマットが殆どのPlayerで当たり前に再生できてしまう環境になってきたのですね。
となると、‘aacgain’に該当するような機能のFLAC対応ツールが欲しいところです。

iTunesを使えばいいじゃない?

あっさりと知人にそう言われたのですが、私はiTunesの呪縛から逃れたいからあくせくしているのであって、今更面倒なiTunesを使いたいわけではないのです。
調べてみると、‘aacgain’に該当するような技法として‘ReplayGain’というものがあるようなのですが、macで動作するツールはほぼ全て(?)iTunesのライブラリありきのようで、個別にサウンドファイルをスキャンしてくれるタイプは見つかりませんでした。

‘ReplayGain’について

以下のサイトを参考にしました。

https://plaza.rakuten.co.jp/wizardofstarlite/diary/201405030000/
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1369998718
http://foobar2000.xrea.jp/index.php?Replaygain%20つかいかた

結局、foobar2000に行きつくようですね。

諦めるか?

foobar2000にmac版があればいうことないのですが、まあ、待っていても無駄なような気がします。他に‘ReplayGain’ scanができるツールがないものかとかなり探しましたが、やはりダメかなとあきらめかけたところで、知人から‘beaTunes5.app’を教えられ、2週間のトライアル期間があるようなのでダウンロードしてみました。確かに‘ReplayGain’に対応しているようです。が、しかし、私が求める方向性とは違っているようで、何ら便利に感じられません。半端ない“これじゃない”感満載です。いや、優秀なアプリだろうことは分かるのですが、私が少数派なのも理解しますが、….。

“逃げ道”を思いつきました。

“逃げ道”というか、何というか。

‘ReplayGain’のscanをmac上でやろうと思っていたのですが、何で“mac上で”なのでしょう?別に、macでサウンドファイルを再生(play)するわけではないのです。再生は携帯端末で、iOSは使いたくないな、というのが私の狙っている道筋なわけで、携帯端末上でscanとplayができるツールを探せばいいのでは?ということです。

なんだか勘違いなのでした。

携帯端末上で‘ReplayGain’のscanとplayができるツールを改めて探すことにしました。‘Poweramp’も購入までしてみたのですが、再生時に‘ReplayGain’のメタタグを利用できるようですが、scanには対応していないようです(使い方が分からなかっただけかもしれません…)。
で、結局、foobar2000のモバイル版に行き着くわけです。

http://mobile.foobar2000.com/
http://foobar2000.xrea.jp/index.php?foobar2000%20mobile

一件落着

scanは、携帯のそんなに高くはないハードウェアスペックで遅いのではないかと案じていたのですが、思ったより速く感じました。まあ、それなりにはかかりますが。

携帯端末にデータを移す前に、macで音量調整を先に施すという考え自体が勘違いであったわけで、携帯端末上で音量調整をしてしまえばいいという、何とも締まらないオチでした。
ということで、割と長く使ってきた‘MacMP3Gain.app’の登板機会は失われたようです。

言い訳とお詫び

このエントリに、mac上で‘ReplayGain’のscanとplayができるツールを期待された方には申し訳ないような結論であります。
当面、私の環境ではデジタルメディアサーバーやデジタルメディアレンダラーなどの役割をmacに担わせるつもりはないので、今後の話の展開はないものと思ってください。

 

AppleScriptでプログレスバー – 2

AppleScriptでプログレスバーを表示することについては、ドタバタした内容ながら、ここで紹介しました。
で、デモバージョンとして、”sudo purge”を実行するだけのアプリケーションを書きました。
そう、なんで今更”sudo purge”なんだと思うのですが、適当に処理時間がかかって、プログレスバーを表示するには都合が良かっただけです。

「メモリ開放」に関しては 、Mavericks以降は不要だと言われながらそれなりの数のツールが出ていますが、結局”sudo purge”以上の効果のあるツールを私は知りません。
Appleの、最近のメモリに関する“富豪主義(?)”については、何を言っても無駄な気がしますし、その傾向は留まらないのでしょう。あればありったけ使うので、余裕があればその分だけ積めということのようですから…。

さて、スクリプトは以下のようになります。

property UserName : ""
property UserPasswd : ""
property y : ""
property DialogPath : "/Applications/Dialog.app"

on run
	set y to path to me
	my checkPass_Name()
	my do_do()
	delay 1
	my done_done()
end run

on checkPass_Name()
	tell application "Finder"
		set UserPasswd to comment of (y as alias)
	end tell
	tell application "System Events" to set UserName to name of current user
	if UserName is "" then
		activate
		display dialog "ログインユーザ名を入力してください。" buttons {"キャンセル", "設定"} default answer "" default button 2 with icon caution returning {text returned:theVart, button returned:theVarb}
		if theVart is not "" then
			set UserName to theVart
		else
			return
		end if
	end if
	if UserPasswd is "" then
		activate
		display dialog "ログインパスワードを入力してください。" buttons {"キャンセル", "設定"} default answer "" default button 2 with icon caution with hidden answer returning {text returned:theVart, button returned:theVarb}
		if theVart is not "" then
			set UserPasswd to theVart
			tell application "Finder" to set comment of (y as alias) to UserPasswd
		else
			return
		end if
	end if
end checkPass_Name

on do_do()
	activate
	display dialog "キャッシュファイルの解放を行います。" buttons {"Cancel", "Do Purge!"} default button 2 with icon 1 giving up after 3
	try
		do shell script "open " & quoted form of DialogPath
		delay 1
		do shell script "sudo /usr/sbin/purge" user name UserName password UserPasswd with administrator privileges
	end try
end do_do

to done_done()
	beep 3
	display notification "ディスクキャッシュを解放しました。" with title "完了"
	delay 0.1
	do shell script "killall applet"
end done_done

ダイアログでプログレスバーを表示するアプリケーションはここで紹介した‘Dialog.app’を「アプリケーションフォルダ」へ入れて使う場合のスクリプトです。
‘Dialog.app’の名称を‘ProgressBar.app’とでもしておけばよかったと後で思ったのですが、まあいいでしょう。

デモアプリケーション

上記のアップルスクリプトとほぼ同じ内容のアプリケーションを”デモ版”として用意しました。ダイアログでプログレスバーを表示するアプリケーション‘Dialog.app’は別途に用意しなくても動作するようにバインドしています(編集可能な形式で保存していますので、パッケージの中身を見ていただければバインドのやり方がわかるでしょう)。

下記アドレスからダウンロード可能としました。
http://amstudio.sytes.net/amweb/purge_mem_prgrs.iso.zip

※アプリケーションの著作権は放棄いたしませんが、対価は不要です。自己責任で、自由にお使いください。
インターネット上のリンクは、作者への事前/事後の承諾は不要ですので、自由にリンクして下さい。
基本的に、再配布・転載は認めません。

保証

動作に関する保証はいたしません。また、使用によって生じたと思われるいかなる損害に対しても、作者は一切責任を負いません。使用は御自身の責任において行なってください。

elFinderがバージョンアップ – 2.1.25

少し遅くなってしまいましたが、elFinderのバージョンが上がっていました。
changelogを見ると、1ヶ月単位くらいで上がっているようです。ここで記した時のバージョンは2.2.22でした。

* elFinder (2.1.25):

– [php] Fixed #2014 “Parse error” on PHP =7.1
– [cmd:rm] Fixed #2042 add command options `infoCheckWait`, `toTrashMaxItems`
– [cmd:resize] Fixed #2043 add “Save As” button into the resize dialog
– [js:core] Fixed #2050 handling server errors during upload
– [VD:abstract] Fixed #2054 to use the same hash value as Linux on Windows server
– [js:restore] Fixed #2057 problem of empty folder handling
– [cmd:empty] Fixed #2061 add a new command `empty` – “Empty the folder”
– And some minor bug fixes

ファイルブラウザというかファイルマネージャーといった使い方はほとんどしていなくて、私にとっては、httpドキュメントルート以下にファイルをダイレクトに転送できる転送ツールといった使い方となっています。
お陰でFTPツールとは縁が切れてしまいました。
設置のための作業は、ここで記した内容と同じ作業でOKでした。

TrashBoxPlus.app – 更新その1

デスクトップに置くゴミ箱

TrashBoxPlus.appは、OS 9時代のゴミ箱機能を再現したものです。
デスクトップ上に置いたTrashBoxPlus.appのアイコンの上に、ファイル、フォルダ、光ディスク、USBメモリ、ハードディスクなどのアイコンをドロップしてください。
イジェクトできるものはイジェクトし、ゴミ箱へ入れられるものはゴミ箱へ入れます。
TrashBoxPlus.appアイコンをダブルクリックした際には、ゴミ箱を開きます。

デスクトップ上にゴミ箱が存在しない環境も、10年も経てば当たり前になってしまって、今では逆になんだこれって思われそうです。
エイリアスをドロップしても、本体を持っていかない(これが当たり前なのですが…)稀有なツールです。
ネットワークボリュームや外付けドライブのアンマウントはFinderそのものよりもスムーズだったりします。

変更点

  • Sierraで挙動不審になっていた部分を修正

ダウンロード

http://amstudio.sytes.net/amweb/TrashBoxPlus.iso.zip
※TrashBoxPlus.appの著作権は放棄いたしませんが、対価は不要です。自己責任で、自由にお使いください。
TrashBoxPlus.appの使用に関して、作者はいかなる責任も負いません。
インターネット上のリンクは、作者への事前/事後の承諾は不要ですので、自由にリンクして下さい。
基本的に、再配布・転載は認めません。

Make_hybrid.app—ダウンロード停止

先日公開いたしましたMake_hybrid.appですが、これで作成したイメージファイルにおいて、一部のバンドルパッケージ内でシンボリックリンクを含むもの(結構当たり前の仕様なのですが…)を第1階層において作られたものから、シンボリックリンクを読み出せないことがあるということがわかりました。
UDFフォーマットにしたことが原因のようで、ISO9660では起こらない現象です。
従いまして、ダウンロードは停止し、トピックスは削除いたしました。

Gooey Gadgets.appなき今 – AppleScriptでプログレスバーもどきを作ってみる

macOS Sierraとなってから(だった思います)‘Gooey Gadgets.app’が起動できなくなってしまったので、AppleScriptからプログレスバーを簡単に表示できる手段を失ってしまった格好です。

‘Gooey Gadgets.app’を使っていた際の手順は以下のような行程でした。

  • Script内でメインの処理プロセスをコールする直前に外部プロセスとしてプログレスバーを呼び出す
  • Script内の処理が終わった段階でプログレスバー表示を終了させる
  • 後処理としてScriptの終了処理をする

調べてみると‘cocoaDialog.app’というアプリケーションがあるようです(ザリガニが見ていた…さんのページを参考にしました)。
が、使ってみると、スクリプト内から‘do shell script…’で“ –indeterminate”モードでコールすると、Script内のプロセスとして‘cocoaDialog’が組み込まれてしまうので、Scriptの次のステップに移れなくなってしまい、私の技量レベルでは使えそうにありません。
(別プロセスとして‘cocoaDialog.app’を起動するためのアプリケーションを用意するという手がありそうですが、あまり気乗りのする手段ではなさそうです。)

こうなれば自作してみる – AppleScript

私が欲しいものは、進捗状況を反映したものではなく、単に“処理中です…”などのテキストを表示してくれればいいだけのものです。まさに‘Gooey Gadgets.app’のようなシンプルなアプリケーションであればいいのです。
プログレスバーに進捗状況を反映させるだけの技量はないので、プログレスバーもどきとしてScriptの処理中に画面に“処理中…”などと表示させればいいので、AppleScriptの‘progress’を使ってアプリケーションを仕立ててみることにしました。
Script自体はいたって簡単です。

set progress total steps to 100 -- ここから
repeat with i from 1 to 100
	set progress completed steps to i
	delay 0.2
end repeat -- ここまでは、まさにダミーで、なんら進捗状況を反映しているわけではありません。
set progress description to "処理中です。
しばらくお待ちください..."
with timeout of 7200 seconds -- まあ2時間もあればいいかと...
	set progress total steps to -1
	delay 7200
end timeout

必ず、アプリケーション形式で保存します。今回は、そのまま‘Dialog.app’という名前で、アプリケーションフォルダ内へ保存しました。
固定表示の時間設定は、使い勝手に合わせて適当に書き換えればいいでしょうが、中途半端に短いとScriptの処理の途中で画面表示が終わってしまいます。

Script内で呼び出す時は、

‘do shell script “/Applications/Dialog.app/Contents/MacOS/applet”’

あるいは

‘do shell script “open /Applications/Dialog.app”’

で呼び出せばいいでしょう(アプリケーションフォルダ内を前提にしています)。(直接実行ファイルを叩くと、外部アプリケーションとして扱えないようで、appletの処理待ちになってしまいますので、‘do shell script “open /Applications/Dialog.app”’という起動の仕方を使ってください — 2017.06.23)
‘Dialog.app’を終了させてダイアログを消す時は、‘do shell script “killall applet”’を使った方が間違いがないようです。‘tell application “Dialog” to quit’でやると、何度か空振りしてしまいました。
‘do shell script “killall applet”’を使う時には、同時に複数のAppleScriptアプリケーションが起動していないように注意してください。

と、ここまで書いた後に、実行ファイル、”/Applications/Dialog.app/Contents/MacOS/applet”の名称を‘applet’から‘Dialog’にリネームしてみました。動きました。
となると、
Script内で呼び出す時は、

‘do shell script “/Applications/Dialog.app/Contents/MacOS/Dialog”’

でOKで、終了は、

‘do shell script “killall Dialog”’

でいけることになります。

補足と修正 – 17.06.21

実行ファイル、”/Applications/Dialog.app/Contents/MacOS/applet”の名称を‘applet’から‘Dialog’にリネーム後に、‘Info.plist’の中も書き換えていたことを書き忘れていたのですが、その後、再現してみると‘Info.plist’を書き換えると、アプリケーションの起動時に初期画面が出てしまうことがわかりました。現時点で、リネームしてそのまま起動させる方法が分からなくなってしまったのでリネームなしで使った方がいいようです。m(._.)m

ダウンロード

アプリケーションを下記アドレスからダウンロード可能としました。
http://amstudio.sytes.net/amweb/Dialog.iso.zip

(このアプリケーションは、”Dialog.app/Contents/MacOS/applet”の名前を変更していません。環境に合わせて、必要であればリネームしてください)

※アプリケーションの著作権は放棄いたしませんが、対価は不要です。自己責任で、自由にお使いください。
インターネット上のリンクは、作者への事前/事後の承諾は不要ですので、自由にリンクして下さい。
基本的に、再配布・転載は認めません。

保証

動作に関する保証はいたしません。また、使用によって生じたと思われるいかなる損害に対しても、作者は一切責任を負いません。使用は御自身の責任において行なってください。