1

ターミナルを使用して、プレビューで開いているウィンドウを閉じようとしています。私がインターネットで見つけたものはすべて、代わりにAppleScriptを使用することを提案していますが、plistオプションが存在しないため、これを行うことはできません(スーパーユーザーでここに示されているように、プレビュー用にosascriptを有効にします)。OSX10.8.2を実行しています。

ここで、私はAppleScriptをあまり気にしておらず、bashソリューションをはるかに好むことに注意する必要があります。

繰り返しになりますが、プレビューで.pdfを開いています。プログラム全体を終了するのではなく、ファイルにアクセスして表示する特定のウィンドウを閉じたいと思います。OSでbashなしでウィンドウを強制終了する方法があるので、これは可能だと思います。

また、OSがアプリケーションのサブプロセス(ウィンドウ)を閉じるときに、シェルとどのようにインターフェイスするかを知りたいです。

開いている.pdf、プロセス、ソケット、ノードなどを見つけることができます。lsofを使用しますが、AFAIK以降、このような情報についてさらに詳しく説明することを躊躇しています。その情報を使用して、プロセス全体を強制終了する(オーバーキル)か、ポート/ソケットを閉じる(奇妙な強制終了)ことができます。

この問題を手伝ってくれてありがとう。私のグーグル能力が私を失敗させているのは本当に私を悩ませています。

編集:コンテキストを追加できるようにするosascriptのスーパーユーザーリンクに追加されました。

4

1 に答える 1

1

あなたが取っているアプローチはうまくいきません.アプリケーション内のウィンドウは、アプリケーション全体に影響を与えずにリモートで強制的に閉じることができるほど分離されていません.

私が考えることができる唯一の解決策は、AppleScript を含みます。「plistオプションは私には存在しません」という意味がわかりません。

tell application "System Events"
    click first button of (first window of process "Preview" whose name is "example.png")
end tell

Preview.app はサンドボックス化されており、通常の方法でスクリプト化できないため、これは通常よりも少し複雑です。代わりに UI スクリプトを使用する必要がありました。(私がクリックしている「最初のボタン」は、ウィンドウの閉じるボタンです。)

于 2013-03-07T04:26:21.927 に答える