3

実行中の Excel プロセスを正しく強制終了するこのコードがあります。

 public static void killExcel(){
     while (isProcessRuning("EXCEL.EXE")){
        Runtime.getRuntime().exec("taskkill /IM EXCEL.EXE");
     }
}

 public static boolean isProcessRuning(String serviceName) throws Exception {
         Process p = Runtime.getRuntime().exec(TASKLIST);
         BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
         String line;
         while ((line = reader.readLine()) != null) {
          if (line.contains(serviceName)) {
           return true;
          }
         }    
         return false;
    }

私の問題は、Excel ファイルが保存の質問をする場合、無限ループが発生することです。

4

3 に答える 3

5

taskkill/ fオプションを指定して実行し、強制的に強制終了しようとしましたか?詳細については、こちらをご覧ください。

可能であれば、Excelを正常に終了できるように、デフォルトのオプションを使用する方が適切な場合があります。終了しない場合は、強制可能なバリアントに戻します。プロセスは通常、要求された場合に終了します。そうでない場合は、正当な理由がある可能性があります。

于 2012-12-11T15:53:37.163 に答える
0

無限ループがあるのは、while ループにあるためです。if ステートメントに入れる必要があります。この方法では、ループしません。他のすべてが失敗した場合は、/f を使用します。

于 2012-12-11T17:57:02.107 に答える