Resource が在ると扱いが面倒なので ADD Actions を分けて、其の他は tarball にしました。: 2003-12-10
System 7.5.5 で Compile すると Obsolete になる部分が多いので Source のみ。 Applet/Droplet の保存の仕方が判らないとも思えませんので。
全て System 7.5.5 か OS 8.1-J のどちらかでしか動作確認してゐません。 OSA Menu から実行すると、 Freeze する物もありますので、気を付けてねん (sortf と Clipboard でやり取りするヤツとか)。 More Compatible にすると大丈夫かも。
旧 Mac OS を使ってゐた頃は 天津 という Puzzle Game でよく遊んでゐたのですが、Mac OS X 用がないので、麻雀牌の Puzzle Game を探しました。結局、上海と云う名前が使えないので xmahjongg という X Window の Game が在りまして、よく遊びますが Command を Xterm に入力するのではなく、X11.app の Menu に Script を仕込んでゐます。
xmahjongg -t real -l $(osascript -e 'some item of {"arena", "arrow", "boar", "bridge", "ceremonial", "deepwell", "dog", "dragon", "farandole", "hare", "horse", "hourglass", "monkey", "ox", "papillon", "ram", "rat", "rooster", "schoon", "snake", "theater", "tiger", "wedges", "default"}')
駒は real 固定にしたいけど、遊ぶ面は Random にするというのを OSA でやってます。以前は some item of の部分を choose from list にしてゐましたが、面倒臭いので変えました。
QuickTime Player で複数 Windows を開いてゐる時に Title順とか再生時間順とかで見たいと思って、何年も前から Script を書いては失敗してゐたのですが、若しかしたら AppleScript には出来ないんではないかと思って shell script で実行してみたら直ぐ成功しました。
global _documents_
{} returning _documents_
try
display dialog "Sort windows by:" buttons {"Cancel", "Title", "Duration"} default button 3 giving up after 9
tell result
its button returned returning _button_
its gave up returning _gaveup_
end tell
end try
tell application "QuickTime Player"
repeat with i in documents
tell i
its duration returning _duration_
its name returning _name_
its path returning _path_
if _button_ is "Duration" or _gaveup_ then
_duration_
else if _button_ is "Title" then
_name_
end if
("" & result & tab & _path_)'s quoted form returning _documents_'s end
end tell
end repeat
end tell
return returning text item delimiters
if _button_ is "Duration" then
"n"
else if _button_ is "Title" then
""
end if
do shell script "tr '\r' '\n' <<<" & _documents_ & "|sort -" & result & "ru|gsed 's/^[^\t]*\t//'|while read f;do open -b com.apple.quicktimeplayer " & quote & "$f" & quote & ";done"
"" returning text item delimiters
gsed の部分は Tab 文字を入れれば sed でも OK. というか cut -f 2 でいけると思ってたけど multibyte は使えないよ的な Error が出て動作しなかったんょ。
等を楽しく聴いてゐるんですが、 Radio の前でじっと座れる事も少ないので何かに録音して後で聴く事が多いです。
以前は MD なんかに録音してゐたのですが、是が結構 融通が利かなくて不便なので Mac で録音し始めたら便利で楽しくなってしまい、 今では録音し過ぎて聴くのが追いつかない位です。
前置きが長くなりましたが、 Audio Recorder.app (v2.2/Panther で確認) で Timer Recording の例です。 Audio In.app の方がスケジュール機能が組み込まれてゐて良さそうなんですが、 Computer が Sleep してしまうと機能しなくなるのでどうにもならんのですゎ。
idle Event を使う方法では Sleep しておいて省エネルギー設定で直前に Wake-Up して、 終わったら又 Sleep なんて芸当が出来ますので、少しは増しですね。
System Events を使って tab 入力で Control してゐる部分が在りますが、 システム環境設定の言語が English になってゐて System Preferences: Keyboard & Mouse: Keyboard Shortcuts: All Controls を Enable に System Preferences: Energy Saver: Schedule... の Control の選択位置が Start up or wake に なってゐないと、『どうにもならない』事態になることがある様ですので、まぁ、誰にも勧められない自分専用 Script です。
『どうにもならない』とゐえば、Mac mini (Late 2005) で Schedule を設定しても Sleep したまま起きない事がある様で、是は本当に『どうにもならない』です。まぁ、eMac と違って点けっ放しでも静かなモンなんで Sleep しない設定にする丈けで OK ですけど。
念の為に書いて置きますが、「実行後、自動的に終了しない」 Application で保存しないと idle Event は実行されません。
AppleScript Files を纏めて Use startup screen & Stay-open applet に変換する Shell Script.
#!/bin/zsh
[ $# -ne 0 ] || { "Usage: $0:t <SCRIPT FILES>"; exit; }
for i in "$@";
do
osacompile -uso "$i:r.app" "$i";
done
個人的な事情で電波状況が悪くなったので
らじる★らじる NHK ネットラジオ を
mimms
で保存する物も用意しました。
Shell Script なので cron で実行する方が良さそうで、
/System/Library/LaunchDaemons/com.vix.cron.plist を見た限りでは
/private/var/cron/tabs/{username} に
crontab file を置く
という事らしいのですが、試してゐません。現状では以前の AppleScript を一寸書き換えた丈けです。
0 9 * * 6 radiru.sh fm 120
Shell Script を実行するのに AppleScript 内で do shell script も使ってみたのですが、此れだと状況が判らないので Terminal 上で実行する方が便利な様です。
Audio Recorder.app を使う場合は問題無かったのですが、Sleep から復帰して何もしないで時間が来るのを待ってゐると、2 分位で又 Sleep してしまう様です(謎)。Wake-up を 1 分前にすると大丈夫っぽい……。
保存する際に Format 変換も行う場合は mimms の代わりに ffmpeg を使うと融通が利くでせう。Live Stream でない時は専ら此ればかり。
[ $# -gt 1 ] || { echo "Usage: $0:t (fm|r1|r2) MINUTES [bk(osaka)|ck(nagoya)|fk(hiroshima)|
hk(sendai)|ik(sapporo)|lk(fukuoka)|zk(matsuyama)|ak(tokyo)]? [TITLE]?"; exit; }
case ${1:l} in
(r2) X=( 511929 ak );;
(r1) case ${3:l} in
(bk|osaka) X=( 512291 bk );;
(ck|nagoya) X=( 512072 ck );;
(fk|hiroshima) X=( 512086 fk );;
(hk|sendai) X=( 512075 hk );;
(ik|sapporo) X=( 512098 ik );;
(lk|fukuoka) X=( 512088 lk );;
(zk|matsuyama) X=( 512103 zk );;
(ak|tokyo|*) X=( 511633 ak );;
esac;;
(fm|*) case ${3:l} in
(bk|osaka) X=( 512070 bk );;
(ck|nagoya) X=( 512074 ck );;
(fk|hiroshima) X=( 512087 fk );;
(hk|sendai) X=( 512076 hk );;
(ik|sapporo) X=( 512100 ik );;
(lk|fukuoka) X=( 512097 lk );;
(zk|matsuyama) X=( 512106 zk );;
(ak|tokyo|*) X=( 512290 ak );;
esac;;
esac;
ffmpeg -i http://nhkradio$X[2]${1:l}-i.akamaihd.net/hls/live/$X[1]/1-${1:l}/1-${1:l}-01.m3u8 \
-bsf:a aac_adtstoasc -c:a libvorbis -b:a 96k -t $[60 * $2] $(date +%F-%H%M%S)-$3-$4.ogg;
# -bsf:a aac_adtstoasc -c copy -t $[60 * $2] $(date +%F-%H%M%S)-nhk-$1-$3-$4.m4a;
FMアーカイブス って何時から在ったんかな? PDF を Preview.app で見ると数字が全く表示されない流石に誰か気付いたのか読める様にはなってますゎな……、と思ったら自分の System の具合が悪かったかも。何か済んません。
AppleScript で Desktop Picture を開いてみると簡単。
tell application "Finder" to desktop picture as alias
tell application "PixelCat" to open (result as POSIX file)
かと思ったら、Desktop & Screen Saver 設定で Change Picture にしてゐる場合に、現在の画像を開いてくれない。ので Terminal でやる方が融通が利く様です。
d=$(defaults read com.apple.desktop Background); open $(
grep ChooseFolderPath <<<$d | cut -d '"' -f 2 | uniq
)/$(grep LastName <<<$d | cut -d '"' -f 2 | uniq)
とかしてみた。
Terminal で Desktop Picture を変更する。
function dtp() {
osascript -e 'tell application "Finder" to "'$1'" as POSIX file returning desktop picture';
}
dtp foo/bar/baz/image.ext
Finder で選択した File の中から何れかを Desktop Picture にする。
tell application "Finder"
selection
result's some item returning desktop picture
end tell
Camino で開いてゐる Tab の Location が file: scheme のモノ丈け Editor で開く。
property TEXTEDITOR : "{Text Editor Name}"
tell application "Camino"
repeat with i in front browser window's tabs
i's URL
if result starts with "file:" then
do shell script "open -a " (*1*) & TEXTEDITOR & " " & result's quoted form
end if
end repeat
end tell
activate application TEXTEDITOR
(*1*): Application Name で指定する場合。
-b: bundle indentifier,
-t: LaunchServices,
-e: TextEdit.app 等も。
QuickTime Player の Favorites を順に full screen で present する。既に Favorites に含まれる Movie を開いてゐる場合は、其の続きから。
tell application "QuickTime Player"
activate
{1, count favorites, documents's name} returning {x, y, z}
if 0 < (count z) then
repeat with i from 1 to y
if favorite i's name is in z then
i returning x
exit repeat
end if
end repeat
end if
repeat with i from x to y
open favorite i
tell front document
present scale screen
repeat until done
delay (duration - current time) / time scale
end repeat
close
end tell
if not show favorites window then exit repeat -- *1
end repeat
end tell
一寸スッキリさせたけど、未だ何かイマイチかな…。
*1) Favorites Window を開いてゐる間、次の Movie を再生します。
QuickTime Player で open された movies を順に full screen で present する。
try
tell application "QuickTime Player"
activate
documents returning d
repeat with i in d
tell i
current time returning ct
present scale screen
pause
ct returning current time
delay 1
start
repeat until done
delay (duration - current time) / time scale
end repeat
end tell
if 1 > (count documents) then exit repeat
end repeat
end tell
on error em number en
if en is not in {-128, 1} then
activate
display alert em & " #" & en
end if
end try
指定しないと全部を同時に play しようとするので、一々 movie が終わるのを待ってゐます。 全部見る前提なので、途中で飛ばしたり止めたりすると上手く機能しません。まぁ、普通は VLC 使うのが無難でしょう。
TextWrangler の Menu: File: New: Text Document: (with Clipboard) を他の Applications にも。
tell application "CotEditor"
make new document
the clipboard returning front document's text
end tell
Web Browser 等で短縮 URI を Copy して、開いても安全かどうか確認する。
on run
try
do shell script "curl -IL $(pbpaste) | grep -i 'Location:' | cut -d ' ' -f 2"
if result is not "" then
result
else
the clipboard
end if
display dialog "" default answer result buttons {"Cancel", "Once More"} default button 2
result's text returned
if result is not "" then
set the clipboard to result
run
end if
end try
end run
Twitter が HTTP Header を lower case で返すので grep に -i option を追加。
取得に失敗した時は、Dialog で修正して再度実行出来ます。用が済んだら して終了。
Glims が Safari 4.1 で動作しなくなったので Max Window Size 丈けでも何とかならんかと云う事で。
tell application "Safari"
repeat with i in windows
tell i
if zoomable and resizable then
if name is "Downloads" then -- *Fx
768
else
0
end if
{result, 22, 1280, 962} returning bounds
end if
end tell
end repeat
end tell
此の侭で Camino, OmniWeb にも使えます。
Firefox は Downloads Window の Title が可変なので *Fx を if name ends with "Downloads" then にする様な変更が必要。
序でに iTunes もやっつける。
property b : {0, 22, 1280, 962}
try
tell application "iTunes"
activate
tell browser window "iTunes"
b returning bounds
end tell
repeat with i in playlist windows
b returning i's bounds
end repeat
end tell
end try
get bounds すれば {left, top, right, bottom} が判りますが、iTunes は実際の window rect と違うのを返すので適当に修正。
Camino で 表示中の URL に含まれる最後の数字を Count-up. Perl の Magical String Incriment を利用してゐるので、他の言語ではもう少し面倒臭くなるかも。
tell application "Camino"
front browser window's current tab's URL
do shell script "perl -ne '
s/#.*//; # Count-up URI (To Count-up Fragment, Comment out this line).
@_ = /^(.*\D)(\d+)(\D+)$/; $_[1]++; print @_;' <<<" & result's quoted form
result returning front browser window's current tab's URL
end tell
ん? <<< って zsh 丈け? …ぁ、bash も出来ますね。それなら略 OK (csh の事は考えた事ない).
Camino を Default Browser にしてゐてよく使うのですが、Safari の Develop Menu にある Open Page with
みたいな機能がないので Script を書いてしまいました。
~/Library/Scripts/Applications/Camino/Open Page with... とか適当な Folder を作って放り込んで置けば OK.
tell application "Camino" to front browser window's current tab's URL
tell application "Terminal" to do script "w3m " & result's quoted form
tell application "Camino" to front browser window's current tab's URL
do shell script "open -a TenFourFox " & result's quoted form
tell application "Camino" to front browser window's current tab's URL
do shell script "open -a Firefox3 " & result's quoted form
基本的には、何の Browser でも此の方法で良いんですが、もう一寸増しな方法も在るので…
tell application "Camino" to front browser window's current tab's URL
tell application "Firefox2" to OpenURL result
tell application "Camino" to front browser window's current tab's URL
tell application "OmniWeb" to OpenURL result
tell application "Camino" to front browser window's current tab's URL
tell application "Safari" to open location result
Opera や iCab なんかは最近使ってないので今回は無し。Google Chrome は Tiger では動かんので知らん。
CotEditor.app 付属の Script (v0.8.2 迄) が不思議な事になってました (v0.8.3 [2005.10.28] で修正されました)。 多分、Editor の Smart Quote 機能で書き換えられてしまったものではないかと思いますが。
do shell script "date ``+%Y-%m-%dT%H:%M:%S+09:00''"
つまり do shell script で呼び出された date の引数は
`` # Empty Back Quote String 空のコマンド置換
+%Y-%m-%dT%H:%M:%S+09:00 # Bare Words 裸の文字列
'' # Empty Single Quote String 空の文字列
が、偶然 問題なく連接されて渡された丈け。 序でに Time Zone が +09:00 とは限らないので、望ましいと思われる書き方は
do shell script "date '+%FT%T%z' | sed 's/00$/:00/'" # 一寸短くしてみた
の様な物になるでせう。
序でに Xcode (v2.5) の Script も書いて置きますが…
echo -n "// ${PREFIX}:${USER}:"
date +%Y%m%d | awk '{printf "%s", $1}'
echo -n " %%%{PBXSelection}%%%"
date の改行文字を削除する為丈けに awk を使ってゐる様ですが、此れ全然必要ないんですゎ。
echo -n "// ${PREFIX}:${USER}:$(date +%Y%m%d) %%%{PBXSelection}%%%"
Quote String 内のコマンド置き換えは自動的に改行が取り払われますよね? 環境に因るのかな……。
Finder で選択中の item を移動する。何も選択してゐない場合は File 選択 Dialog も表示する。
try
tell application "Finder"
selection
if result is {} then
choose file with multiple selections allowed
else
result
end if
move result to (choose folder)
end tell
end try
POSIX path を入力して Folder 階層を作る。 Save File Dialog を利用してゐるので、 / を含む Path を入力すると - に置き換えられたりしますが、最初に Slash を入力すると別の Dialog が開いたりして中々難儀な事で。
try
do shell script "mkdir -p -- ./" & (choose file name)'s POSIX path's quoted form
end try
Finder で選択中の位置に A から Z まで Folder を作成する。
property |A| : ASCII number "A"
property |Z| : ASCII number "Z"
tell application "Finder"
tell front window
repeat with i from |A| to |Z|
try
make new folder at it with properties {name:ASCII character i}
end try
end repeat
end tell
end tell
Terminal で Perl だと短い。
perl -e 'mkdir $_ for "A" .. "Z"'
而も二文字変える丈けで消せる。
perl -e 'rmdir $_ for "A" .. "Z"'
例えば、現在の「分」を求めるとしましょう。
根気強い AppleScripter はこんな書き方をするでしょう。
current date
result's time
result mod hours
result div minutes
-- or
((current date)'s time) mod hours div minutes
でも、手抜き Scripter は、大凡こういうので済ます筈です。
do shell script "date '+%M'"
Finder で選択中の位置に今日の日付の Folder を作成する。
on wdigits(d)
return "" & d div 10 & d mod 10
end wdigits
on join(s, t)
s returning text item delimiters
return "" & t
end join
try
tell (current date)
my join("-", {its year, my wdigits(its month), my wdigits(its day)})
end tell
{result, {}} returning {iso_date, |L|}
"" returning text item delimiters
tell application "Finder"
repeat with i in {} & selection
if i's class is folder then
i as alias
else
i's container as alias
end if
if result is not in |L| then result returning |L|'s end
tell |L|'s last item as reference
if not (exists item iso_date) then
make new folder at it with properties {name:iso_date}
end if
end tell
end repeat
end tell
end try
勿論 Terminal の方が百倍楽チンです。
apply 'mkdir -vp "%1"/'`date +%F` /foo/bar ./baz/qux/quux ~/corge/grault/garply/waldo
Mac OS X Panther で Sleep 復帰後に uControl が効いてない症状が出る場合 Machine を再起動する迄 続くのですが、主に困るのは Tarminal での入力なので、
sudo /Library/StartupItems/uControl/uControl start
等と入力してゐました。入力自体は history から呼び出せますが、毎回 password を要求されるので面倒です。
Preference Pane を開いた丈けで直る様なので、AppleScript にしました。
tell application "System Preferences"
set current pane to pane "org.gnufoo.kext.uControl"
quit
end tell
on _ at _
return class of _
end _
display dialog "Local Identifier _ is " & (_ at "_") & " class" & "
Global Handler _ is " & (class of _) & " class"
-- results
>> Local Identifier _ is string class
>> Global Handler _ is handler class
--
-- using script object
script _
on _ at _
return class of _
end _
end script
tell _
display dialog "" default answer "Local Identifier _ is " & (_ at "_") & " class" & "
Script Object _ is " & (class of _) & " class"
end tell
-- results
>> Local Identifier _ is string class
>> Script Object _ is script class
|name| の様に Fence で挟む。|(* \r \t *)| の様に Comment を Fence で挟む。 此処で云う Comment とは (* から *) 迄。(* と *) の間の文字列は式か文として評價されてゐる。--を插入するか、 Double Quote で括れば Error にならない。
(* *) は Debug 用途以外では使わない方が無難。この Installer は 酷いです。 StiffIt Installer Maker の特徴でもありますが (w
で、安全に Install するには…… Apple_Data_Detectors_sit.hqx (SDK) の Installer を使いませう。
んで、 iCab なんかはこんな Menu が出る様になります。 Link 集とかで遣ると画面全体 Context Menu になったりしますが。

Apple Data Detectors Database は頻繁に壊れるので、こまめに Check しよう。
OSA 環境は幾つか在ったんですが、何年も経たずに淘汰されてしまい AppleScript ぐらいしか残ってゐません。
UserLand Frontier も一部では人気があって、使ってる人達は結構自慢気なのですが、生成された HTML の文法が支離滅裂だったりして余り良い印象がありません。
JavaScript OSA は以前使ってゐた環境で動かなくなってしまって、其れっきりです。 OS X では { Dashboard, Konfabulator } の方が使いよいので、もう使われないでしょうね。
まさか、Apple が OSA 環境に JavaScript を採用する事になろうは、全く想像して居りませんでした。そして、私は何時迄も Mac OS X 10.4 Tiger の儘なので、知りもしませんでした。
JavaScript for Automation Release Notes
AppleScript 言語早見表が日本語 Dialect なので…… 元の英語版 と併せて參照するとか)
CompileIt! Demo の 10 行制限内でなんとか XCMD/XFCN を作って遊んでゐましたが、 制限無し Version が公開されましたので、そのうち修正したいとは思ってゐます……。
最近の Apple Macintosh 製品は、既に HyperCard が滿足に動く環境では無くなって來てゐますので、 HyperCard 專用 Machine を用意してみませんか? 私の環境は PowerMac 8500/180 です。快適です。
Sparse Disk Image を使う以外に USB Memory を使う方法がハイパカ・フォーラムで出てゐますね。 Format の知識さえ Clear すれば好い Idea だと思います。 まぁ、v2.4.1 なら問題ないのでアレですが。
Classic 環境では何らかの cache が効いてゐる様で、實行速度が 2 囘目以降は安定したり、 XCMD/XFCN, HyperTalk, AppleScript での差が小さかったりする様な雰圍氣です (未確認)。
やっとの亊で Mac OS X に移行しましたので、 Classic 環境への對應も徐々にしたい、と思った儘放置されてゐます……。
Easy to Remember から V3.com に移行した Timing で解約したので http://w3.to/surume/, http://surume.w3.to/ からの転送は出来なくなってゐます。 再度登録してみましたが Spam Mail が来る丈けで転送されません。
- setext を XHTML Basic 1.0 で保存できます。
- 飽くまでも {簡易, 略式, 短縮形} ですので、至らぬ点には目を瞑るように( ̄▽ ̄;
setext Menu
一應、一通りの typo tag を Menu で挿入出來ます。
搭載された小さな親切大きな御世話機能
- あんまり酷いとアレなんで、 Another HTML-lint <http://openlab.jp/k16/htmllint/> で、エラー無しの 100 点になる程度には設計してあります。
- タイトルは RFC1866 で推奨されている 64 Bytes 以下に切り詰められます。
- 明らかに正しくない E-mail address の簡易チェック機能。
- 本文中の HTTP or FTP URI は自動的に Link します。 accesskey も自動的に設定します (a-z の繰り返し)。
- & < > " だけは実態参照に置き換えられます。
- 空行を段落、又は箇条書の境界と判定し Mark 付けします。
- 適当に判断して List (Ordered, Unordered) が作成出来るようになりました。 行頭 Word が * だけ、又は数字だけならば List と判定します。 但し、後に続く文字列との間に Space が無い場合は Data 文字列として扱います。
- <br /> (Forced Line Break) を挿入するのが無駄なのでやめました。
- Plain Text からは、見出しの自動 Markup が無理なので、 setext を 変換するようにした。とゐっても Typo tag は見出し定義が Title と Subhead しかないので <h2> と <h3> しか作れない。
今後の予定
- 実際に i-mode 等での表示状態の確認 (携帯端末を持ってゐないのです)。
- XHTML tag への変換 (追々追加する氣持ちはあるのですが……)。
Thanks to
GetEMail() from Internet XFCNs by Matthias Kahlerts <http://mkahlert.com/>
参考: Markdown.pl : 関係ありそうななさそうな…。
Clipboard の畫像に對して client side image map の HTML TAG を作成します。 屬性値が自動で設定されるのは coords 丈けですが。
という理由で、現在 shape は rect のみです。
因みに、 circle の場合は 中心點の座標と半徑、 poly は頂點の座標の羅列だった と思います。 circle なんかは特に簡單なので誰でも擴張出來ますね :D
image map を作成する際、 <area> を使わなくてはいけないと思ひ込んでる方 も居られるようですが、對應していない Client で參照出來なくなりますので <a> を使います (註: HTML5 では <a> 要素の shape 属性および coords 属性は削除されました)。 ま、逆に <a> の image map に對應出來て無い (若しくは古い) Client がありますが <a> は必ず表示されますので、 100% Access が可能です。
HyperCard Stack の Script を TEXT file に Save します。 正直かなり眞面目に取り組んだ (というか必要に逼られて作った) のですが、 製品版に付屬する Power Tools に同様な機能 (Export a Stack's Scripts) があって滅茶ガッカリしました。
んで、おまけとして Script の聨續した空行を壓縮します。 でも、割り当て Memory が足りないと Stack 自體をこわしてしまうかも。
Script の 實行時間を測定します。 各々、實行出來る文か式になってゐなければなりません。 まぁ、大抵は get しておけばよいとは思いますが……。
最初に空の文を指定囘數實行して Loop に掛かる時間を差引しますので ソコソコ有效な結果が得られると思います。
Perl の Benchmark::timethese() を Hint にしました。
數字との判別が煩わしい O, I, l を使わない Randomな文字列を生成します
結果の List を Click すると Hilite した行を Clipboard に Copy します。
JPEG File の 先端マーカは 0xFFD8, 終端マーカは 0xFFD9 です。 この Stack は JPEG File の 2 byte 目が 0xD8 か、末端 1 byte が 0xD9 か、丈けを調べます。
對象は選擇した Folder に含まれる全ての JPEG Files です。
Form が使えない WannaBe をもっと活用する爲の Tool です。
ICLaunchURL に依存してゐます。
通常 HyperCard では、Text の検索には command + F が使われますが、 version 2.3 以降では find "" とだけ message に出るようになりました。 これは、入力した単語の 何れか が対象となります。
それはそれで便利なのですが、作者名がはっきり分かっている場合は、 却って面倒に感じますので find string "" とした方が求める結果になるでしょう
shift + command + F とすれば find whole "" となるのは同じです。 書体名で検索する際に便利でしょう。
Button を追加し、順序、内容、 Icon, Script を変更しました。 左から順に以下の様に為って居ります。
で、 mark は個々に付けても良いのですが、面倒過ぎますので 作者名で一括 mark 出来るようにしました。
自分用に追加した Command です。 HyperCard Player では利用出来ません。
ma (Mark(s) by Author)ma "David Rakowski" と入力して return / enter key を押すと Author field に David Rakowski が含まれる card を全て Mark します。la (List Author)la "David Rakowski" と入力して return / enter key を押すと Author field に David Rakowski が含まれる全ての card の書体名と Type を Text File に書き出します。ep (Export Paint)ep と入力して return / enter key を押すと 全ての Mark された card の Picture を File に書き出します。 File Type は PNTG (MacPaint) です。HyperCard に組み込みの ScriptEditor は大きい Screen では長細い Window を開きます。

此れではあまりにも不便なので Home Stack の startUp Handler で設定しましょう。
on startUp
--: snip :--
global scriptWindowRects
get item 3 to 4 of the screenRect
put min(1000, item 1 of it div 100 * 100) into item 1 of it
put item 2 of it div 100 * 100 into item 2 of it -- or subtract (Dock, Control Strip)'s height
get "46,44," & it & return & "26,64," & it & return & "6,84," & it
put it into scriptWindowRects
--: snip :--
pass startUp
end startUp
わりとどうでもいい話題
知っても得しない(?)無駄知識。
自作の Benchmark Stack で do (hoge) で測定したら、 直接書いた場合とは全然違ったので、嘘ばっかりでした済みません。 Benchmark Stack を作り直して再度計測しました。
it is empty より the length of it = 0 の方が速い?do した場合を參照。is in (is not in) より contains の方が速い (或いは其の逆)?do EXPR で實行した場合
faster: do "put 0.123*4.567"
faster: do "put 0.12 / 3.45"
slower: do "put 0.1 + .23"
faster: do "put trunc(0.123-4.567)"
slower: do "put trunc( 0.12*3.45 )"
slower: do "put trunc ( 0.1/.23 )"
faster: do "put (0.123+4.567)"
slower: do "put ((0.12-3.45))"
slower: do "put (((0.1*.23)))"
faster: do "put (0.123/4.567)"
slower: do "put(0.12+3.45)"
slower: do "put( 0.1-.23 )"
it is empty より the length of it = 0 の方が速い?do した場合は逆になる。is in (is not in) より contains の方が速い (或いは其の逆)?なんか do する時は氣をつけましょう、って丈けな駄文でございました。
結果的に Style Guide for Python Code (和譯) と近いのではないかと思いますので、讀んでみてもいいかもしれません。或いは Style Guide for HyperTalk
を誰かが書く可きなのでしょうか。
此處に書いた内容も、1 囘の命令で 1 / 1000 秒しか違わない様な事が含まれてゐます。
囘數より HyperCard の Version の方が重要。 v2.3 以降と 其れ以前では結果に差がある。
抑々 v2.3.5 以降も色々と Bug Fix されてゐるので、實行は v2.4.1 Player を使いませう。
HyperTalk で Binary file を讀み込むと Null (0x00) が Space (0x20) に變換されてしまいますが、 通常 Finder 等の AppleScript では扱えます。 HyperCard でも AppleScript なら扱えるかと、試してみました。

何の亊は無い、HyperTalk ではなく HyperCard が Null を扱えないのでした。
どう云う譯か HyperCard の Window Size が 標準 9 inch (512 x 342) に固定されて、其れより大きな Stack は Scroll しないと Card 全體が見えなくなりました。 PowerMac 8500 の Screen Size は 832 x 624 なので入らない譯無いのですが。 はて? 私は何を間違えたのでしょうか……
なんか JavaScript OSA が怪しいらしいです。そう云えば、入れたり外したりしてたなぁ……。
HyperCard 2.4.x Updater の Installer には Application の Updater の他に Power Tools 等が含まれます。肝心の部分こそ使えませんが、いただき
でしょう。
Reference や Help 等の Stack は Menu が 英語なので、英語版の 2.4.1 Player と一緒に置いた方が便利かもしれません。
Mac OS 8 CD-ROM 等にある J1-2.3.6 の Help Stack を HyperCard Lite J1-2.2.1 Folder に放り込むと一寸得した氣分になれます。
但し、上記の Help Stack は、特定の環境で Bug が發覺しますので修正が必要です。
Mac OS 8 CD-ROM 等に含まれる HyperCard 2.3.6 Stacks の内、
は Menu の作成, 削除に矛盾があり、OS 8 以降の Finder のヘルプ
メニューがHelp
になってゐる環境下で問題になる事があります。
StartUp 時に作成される Menu はリファレンス
ですが、 メニュー第一項目の『ヘルプについて』を選択するとHelp
Menu を作成しようとします。 この時点では、既にHelp
Menu が在る丈けで問題は起こりません。
しかし、別の Card に移動しようとすると、Help
Menu を削除しようとします。 勿論 System の Menu なので削除出来ない為、 Error になります。
"Help" と "ヘルプ" を "リファレンス" に変更するよう に設定し、 を押す (文字列は Double Quote も含む)。

HyperTalk ReferenceStack は Sample Script 中にも同樣の問題が含まれます。
Disable, Enabled, CheckMark, MarkChar, の Card Script と background field "デモスクリプト" も修正します。
menuItem "HyperTalk Reference" になっている部分を menuItem 4 (又は menuItem "HyperTalk リファレンス") に置き換えます。

bg fld "デモスクリプト" 内は検索出来なくなってゐるので書き換えが面倒ですが。

Machine 性能が上がるに聨れてドンドン速くなってゐるものの、やはり HyperCard の處理速度は速いとは云えませんので、 Algorithm に十分留意する可きでせう (自戒)。
以下、敬稱畧。
数字選択式の籤(くじ)を予想する事が、いかに無意味であるかを証明します。
The Complete HyperCard 2.2 Handbook 下巻 [プログラミングテクニック編] (ISBN4-89563-400-0, 毎日コミュニケーションズ, Danny Goodman 著, ¥2,800)
HyperTalk 2.3 活用リファレンス (ISBN4-7741-0194-X C3055, 技術評論社, 赤松正行 中井裕之 共著, ¥2,200)there の説明が抜けてゐるなど、不備な點も殘ってゐます。
配列操作の比較表: Ruby, AppleScript, HyperCard というのを書いてみました。 内容に間違いや不備があれば、勝手に書き換えといて貰えると有り難いです。
こんな indent は厭だ。
Curly Brace の何れと何れが対か全然判りません。 ScriptEditor 作ってる人って、天才か馬鹿かどっちかなんでしょうか。 凡人にも使い易くして欲しいな。