0

File Maker Pro に関して 1 つの特定の問題があります。Mac には FMP11 と FMP12 の両方がインストールされています。FMP でドキュメントを開いて何らかの処理を行うスクリプトがあります。スクリプトはこれまでのところ問題なく機能しましたが、新しいのは、FMP11 と FMP12 の両方のドキュメントが混在していることです。そのため、適切な FMP を開いて作業を行う必要があります。問題は、それらが両方とも AppleScript アプリケーションのリストに同じ名前で登録されていることです。そのため、「アプリケーション File Maker Pro Advanced に伝える」と、どちらに伝えているかが厳密に定義されません。すべての FMP を終了し、Finder を介して FMP11 または FM12 のダミー ドキュメントを開くことで問題を回避しようとしました。これにより、適切な FMP バージョンが開始されますが、Activate で切り替えたい場合、または最初に Tell を使用する場合その後、開いているものがFMP11であればすべて正常に動作し、FMP12が開いていれば、tell ステートメントは FMP11 を開きます。最も奇妙なことは、スクリプトの別の単純化されたバージョンでは正常に動作することです。

だから私の質問は次のとおりです。アプリケーションの登録済みの名前を使用して、tell アプリケーションを使用する他の方法はありますか?

FMP11 と FMP12 の両方のプロパティを取得しようとしましたが、結果は次のとおりです。

* FMP11

アプリケーションプロセス "FileMaker Pro" のプロパティを取得 --> {enabled:missing value, unix id:63125, file:alias "MACHD:Applications:FileMaker Pro 11 Advanced:FileMaker Pro Advanced.app:", Creator type:"FMP7" 、サブロール:欠損値、コンテンツ全体:{}、選択:欠損値、アプリケーション ファイル:エイリアス "MACHD:アプリケーション:FileMaker Pro 11 Advanced:FileMaker Pro Advanced.app:"、方向:欠損値、ロール:"AXApplication"、高レベル イベントを受け入れます:true、ファイル タイプ:"APPL"、値:欠損値、位置:欠損値、id:25741451、表示名:"FileMaker Pro Advanced"、名前:"FileMaker Pro"、クラス:アプリケーション プロセス、バックグラウンドのみ:false、最前部:false、サイズ:欠損値、可視:true、クラシック:false、役割の説明:"application"、最大値:欠損値、アーキテクチャ:"i386"、使用パーティション容量:0、短い名前:"FileMaker Pro Advanced"、フォーカス:欠損値、最小値:欠損値、ヘルプ:欠損値、タイトル:"FileMaker Pro Advanced"、リモート イベントを受け入れる:false、説明:"アプリケーション"、パーティションの合計サイズ:0 、アクセシビリティの説明:値がありません、スクリプト用語があります:true、バンドル識別子:"com.filemaker.client.advanced"}

FMP12

アプリケーションプロセス "FileMaker Pro" のプロパティを取得 --> {enabled:missing value, unix id:63199, file:alias "MACHD:Applications:FileMaker Pro 12 Advanced:FileMaker Pro Advanced.app:", Creator type:"FM12" 、サブロール:欠損値、コンテンツ全体:{}、選択:欠損値、アプリケーション ファイル:エイリアス "MACHD:アプリケーション:FileMaker Pro 12 Advanced:FileMaker Pro Advanced.app:"、方向:欠損値、ロール:"AXApplication"、高レベル イベントを受け入れます:true、ファイル タイプ:"APPL"、値:欠損値、位置:欠損値、id:25753742、表示名:"FileMaker Pro Advanced"、名前:"FileMaker Pro"、クラス:アプリケーション プロセス、バックグラウンドonly:false、frontmost:false、size:欠損値、visible:true、Classic:false、role description:"application"、最大値:欠損値、アーキテクチャ:"i386"、使用するパーティション容量:0、短い名前:"FileMaker Pro Advanced"、フォーカス:欠損値、最小値:欠損値、ヘルプ:欠損値、タイトル:"FileMaker Pro Advanced"、リモートを受け入れるイベント:false、説明:"アプリケーション"、合計パーティション サイズ:0、アクセシビリティの説明:欠損値、スクリプト用語あり:true、バンドル識別子:"com.filemaker.client.advanced12"}*バンドル識別子:"com.filemaker.client.advanced12"}*バンドル識別子:"com.filemaker.client.advanced12"}*

したがって、Apple Script Editor の Dictionary に表示される文字列は、表示名、短い名前、またはタイトルのプロパティのようですが、両方のアプリで同じです。

では、どうすれば適切な FMP バージョンを開いて伝えることができますか?

4

3 に答える 3

1

tell application id作成者コードまたはバンドル ID を含むフォームを使用してください。

たとえば、これを試してください:

tell application id "FMP7"
    activate
end tell
于 2014-02-25T03:40:50.053 に答える
0

試す:

do shell script "open -b 'com.filemaker.client.advanced12'"
tell application (path to frontmost application as text)
    properties
end tell
于 2012-06-04T12:05:47.300 に答える
0

appName を現在のアプリケーションの ID に文字列として設定します

于 2012-10-17T16:29:42.457 に答える