HOME > AppleScript > Safari の前面ページをマカー用。で開く


(*
OS X 10.4.4
マカー用。1.0x21c、22c
でテスト。

Safari で表示している BBS (2ちゃんねる、PINKちゃんねる、まちBBSなど。) のスレッド URL をマカー用。で開く。
ファイルメニューの"URLを開く"を UI スクリプティングで実行しているだけなので、"URLを開く"で開けないものは無理。
たとえば3ちゃんねるやしたらば(の一部?)はマカー用。が対応しているが、"URLを開く"メニューからスレッドを開くことはできない。
また BBS の URL でなくても開こうとするが、この場合マカー用。側でエラーメッセージが出るだけなので問題はない(はず)。

==入力モードを切り替えるハンドラ switchInputMode() について==
OS X 10.4.x でことえりを使用している環境が対象。
OS X が 10.4 になって、マカー用。が起動するとき自動的に U.S. モードに切り替えることができなくなった。
そのためことえりがオンになった状態で起動してしまうとスペースバーを押したとたんに落ちるといったことが頻発する。
それを防ぐために前もって入力モードを U.S. にしておくためのスクリプト。
*)

property mbiN : 4
property makaPath : ""
property mItemList : {"英字", "ひらがな", "カタカナ", "全角英字", "半角カタカナ", "アイヌ語", "U.S."}

set sysVer to (do shell script "echo " & (system version of (system info)) & " | sed 's/\\.//2'") as number
set curInputMode to (do shell script "defaults -currentHost read com.apple.HIToolbox AppleCurrentInputSource") as string
tell application "System Events" to set makaBool to (exists (every application process whose name contains "マカエレ")) or (exists (every application process whose name contains "MakaEle"))

tell application "Safari"
activate
set the clipboard to (URL of document 1) as string
if (makaBool is false) and (sysVer is not less than 10.4) and (curInputMode contains "com.apple.Kotoeri") then
my switchInputMode()
set mbiN to result
delay 0.5
my goMaka()
set makaPath to result
else
my goMaka()
set makaPath to result
end if
end tell

on switchInputMode() --ことえりからU.S.に切り替える。
tell application "System Events"
tell process "SystemUIServer"
tell menu bar 1
set menuExtras to every menu bar item
if ((value of item mbiN of menuExtras) is not in mItemList) then
repeat with i from 1 to (number of items of menuExtras)
if value of (item i of menuExtras) is in mItemList then
set mbiN to i
exit repeat
end if
end repeat
end if
tell menu bar item mbiN
click
repeat until (exists of front menu) is true
end repeat
delay 0.5
tell front menu
tell menu item "U.S." to click
end tell
end tell
end tell
end tell
end tell
return mbiN
end switchInputMode

on goMaka()
tell application "Finder"
if (makaPath is "") or ((exists file makaPath) is false) then
tell application "Safari"
set makaPath to (choose file with prompt "マカー用。本体を選択してください。" default location (path to applications folder) without invisibles) as string
--path to applications folder を括弧で囲まないと invisibles がユーザ定義の変数になってしまう。
end tell
if kind of file makaPath is "アプリケーション" then
if version of file makaPath starts with "マカー用。" then
set makaApp to (name of file makaPath)
else
beep
my goMaka()
end if
else
beep
my goMaka()
end if
else
set makaApp to (name of file makaPath)
end if
end tell

tell application makaApp to activate

tell application "System Events"
tell process makaApp
keystroke "u" using command down
delay 0.5
repeat until (exists of window "URLを開く") is true
end repeat
keystroke "v" using command down
keystroke return
end tell
end tell
return makaPath
end goMaka

(*
==参考==
マカー用。
http://www.tmhkym.net/maka/
おもろい、めずらしいアップルスクリプト発表会 5
http://pc7.2ch.net/test/read.cgi/mac/1067367790/979-985
【標準装備】スクリプトエディタ
http://pc7.2ch.net/test/read.cgi/mac/1111760449/332
*)

HOME > AppleScript > Safari の前面ページをマカー用。で開く

TOP

created: 2006-02-15T01:12:09+09:00
last modified: 2006-04-04T00:32:24+09:00
author: AquaBowler