2017-09-13 15 views
3

複数のインスタンスまたは同じアプリのコピーをMacで実行することは可能です。しかし、AppleScriptはそれらを別々に識別することはできません。私のアプリが「FileMaker Pro」であり、複数のコピーが実行されているとします。 AppleScriptが「FileMaker Pro」に終了するよう指示したので、実行した最初のファイルを終了します。これは、終了したくないファイルである可能性があります。AppleScript、IDでアプリを安全に終了

まず最初に最前面のアプリケーションを特定し、次に別のものを実行して(他のアプリケーションを前面に持っている可能性がある)スクリプトを作成して、最初に特定した最前面のアプリケーションを完全に終了します。いくつかは、私がやったグーグル

は、シェルスクリプトが

しかし、私からの「...殺す」ん私は

プロセスIDで最前面のアプリケーションを識別し、

提案を発見しました

このスクリプトは、AppleScriptのquitコマンドを正確に実行したい場合や、ファイルメニューから手動で終了を選択するようにしたい場合があります(これは安全です)。変更を保存するか、w他の何か。

これは可能ですか?もしそうなら、どのように?

+0

名前の代わりにUnix IDを使用しても、Applescriptは常にアプリケーションの最後に開いたインスタンスに対処します。回避策は、アプリケーション内でFM1、FM2などの名前を変更することができますが、特にFileMakerなどの標準アプリケーションでは、他の問題が確実に発生します。その後、Filemakerの最初のインスタンスを終了するには、まずこの最初のインスタンスの後に開いた他のすべてのインスタンスを適切に終了する必要があります。終了するには、「システムイベント」ブロックに「command down」を使用してキーストロークqを使用します。 – pbell

答えて

2

アプリケーションのコピーについては、名前の代わりにアプリケーションのパスを使用することができます。

+0

「アプリケーションファイルに 'set x」ではなく「set thisAppPathをアプリケーションファイルに文字列として」使用せず、' set thisAppPath to x of'を取り除く理由は何ですか? – user3439894

+0

@ user3439894このエラーが発生したため、**エラー "エイリアスを作成できません" Macintosh HD:アプリケーション:Safari.app:アプリケーション\ "システムイベント\"をタイプ文字列に変換します。エイリアス "Macintosh HD:アプリケーション:Safari.app:"から "-1700"までの文字列を**に変換します。 違いは、AppleScriptのエイリアスではなく、 "システムイベント"のエイリアスです。 ''このappAppPathを(そのアプリケーションファイル)のパスに設定する '' – jackjr300

+0

ええ、私が提案したのは、OS X 10.8.5で正常に動作しました。 10.12.5動作しません。あなたの 'thisAppAppPathを(そのアプリケーションファイル)のパスに設定する'は、macOS 10.12.5で動作します。いずれかの良い答え+1。 :) – user3439894

関連する問題