2017-01-28 9 views
0

私はプログラムを作成していますが、このプログラムはMacの「ファインダー」またはWindowsの「ファイルエクスプローラー」が開いているかどうかを確認する必要があります。私はtutorialを使ってこれをやろうとしています。私が今入手したこのコードは、実行中のすべてのプロセスをリストするために機能するようです。現在実行中のプロセスを取得する

しかし、問題は現在実行中のものではないということです。つまり、午前3時であっても午後2時に実行されていたプロセスがリストされます。つまり、リストされたプロセスにFinderやファイルエクスプローラが含まれているかどうかを確認する場合は、常に実行されているシステムアプリのようなもので、正規のダウンロードした.exeのように閉じることはできません。ファインダーやエクスプローラーを再起動することによって、近い種類の唯一の方法です。これは最初、プロセスリストをその中のファインダまたはエクスプローラで更新します。しかし、通常、ユーザとしてファインダやエクスプローラを開くときには、毎回アプリを再起動する必要はなく、エクスプローラやファインダを開くだけで新しいランタイムプロセスが起動することはありませんそれが開かれたかどうかをチェックする。

ファインダやエクスプローラのプロセスが起動したばかりかどうかを確認できるように、コードを変更する方法があるかどうかを知りたいと思います。起動されたばかりで、起動していない場合に起動する必要があります。 私はここで私が使用しているコードをここに記載しました。 Mac用の

package readPList; 

import java.io.BufferedReader; 
import java.io.InputStreamReader; 

public class MyProcReader { 
    public static void main(String[] args) { 
     try { 
      String process; 

      Process p = Runtime.getRuntime().exec("ps -few"); 
      BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); 
      while ((process = input.readLine()) != null) { 
       System.out.println(process); 

      } 
      input.close(); 
     } catch (Exception err) { 
      err.printStackTrace(); 
     } 
    } 
} 

私はMacのラインSystem.getenv("windir") +"\\system32\\"+"tasklist.exe"

答えて

0

を使用"getRuntime()"ラインとWindowsのためのライン"ps -few"を使用し、私が提案するもう一つの方法は、アプリケーションがあるかどうかをチェックすることを可能にするAppleScriptを使用することですランニング。 Applescript in javaを統合することができます。

アプリケーションがAppleScriptで動作している場合は、checkの回答セクションを参照してください。

+0

私は入力を感謝します、私はそれをチェックアウトするつもりです。拡張されたライブラリのようなプラグインのようなものか、JavaでApplescriptを「到達可能」にするために何かをインストールする必要がありますか? –

+0

いいえ、AppleScript [リンク](https://en.wikipedia.org/wiki/AppleScript)は、WindowsのVBAスクリプトのように、Appleが提供するスクリプト言語です。 あなたの研究の後に役に立つと思われる場合は、回答をupvoteしてください。ありがとう – py563

関連する問題