• 締切済み

AppleScriptで特定のファイルを特定のアプリで開く

現在FileMakerとAppleScriptを組み合わせて開発を行っています。 下記のような作業をしたくコーディングをしたのですが、うまく動作させる事ができません。何が原因なのでしょうか? 作業:特定のフォルダに入っているパワーポイントのファイルを特定のバージョンのパワーポイントで開きたい。 環境:MacOS X 10.5.6、PowerPC G4、FileMaker 9 コード: tell application "Finder" repeat with i in folder "Data" of startup disk if file type of i = "SLD8" then i select open selection using file "Microsoft PowerPoint" of folder "Microsoft Office 2004" of folder "Applications" of startup disk end repeat end tell 問題1:ファイルを開く事はできるが「Macintosh HD:Data:test.pptはUser1が編集中です。読取専用で開きますか?」とエラーが表示され、延々とループしてしまう。 問題2:そもそもPPTのファイルを開いてくれない時がある。 PPTファイルのフルパスを指定すれば、問題なく開く事ができるのですが、 業務都合上色々なファイル名のPPTが入ってくるため、対象フォルダの中をFileTypeで探してオープンしています。 そもそものコードの部分から間違っているなどご指摘頂けると幸いです。 何か解決方法をお持ちの方、お力をお貸し下さい。 よろしくお願い致します。

みんなの回答

回答No.1

--ファイル名末尾の拡張子らしき物を判定 -- 単純に最後の4文字がpExtと一致するかを判定 on mFileNameExtChk(pFileName, pExt) set len to length of pFileName set ext to text (len - 3) thru len of pFileName --display dialog ext if pExt = ext then return true else return false end if end mFileNameExtChk on run set appPath to "\"/Applications/iWork '08/Keynote.app\"" set extStr to ".ppt" tell application "Finder" repeat with i in folder "テストデータ日本語パス" of startup disk --keynote(08)で試しています -- Keynote(08)は".ppt"書き出し時にファイルタイプ値"SLD8"を設定しないようです -- 手動でタイプ設定して試しました -- --Keynote、もしくは他OS環境からやってくる".ppt"の場合 -- リソースフォークが無くてタイプ判定を素通りすると思います -- タイプ判定、拡張子判定、両方行った方が確実です i select set fileNameStr to POSIX path of (selection as text) set filePath to "\"" & fileNameStr & "\"" set cmdStr to "open -a " & appPath & " " & filePath if file type of i = "SLD8" then --確実に開けるようにシェルスクリプトとして実行してみました --コマンド:open -a App File do shell script cmdStr else if (my mFileNameExtChk(fileNameStr, extStr)) then do shell script cmdStr end if end if end repeat end tell end run

すると、全ての回答が全文表示されます。

関連するQ&A