2016-04-02 18 views
0

Ich möchte Microsoft Power-Point von Java-Code öffnen, aber vorher möchte ich überprüfen, ob es bereits geöffnet ist, wenn bereits geöffnet, zeigen Sie es sonst öffnen Sie neu.überprüfen, ob Powerpoint in Java bereits geöffnet ist?

bis jetzt schreibe ich dieses

Process p=Runtime.getRuntime().exec("cmd.exe /C start powerpnt"); 

dieser Befehl öffnen neue Power-Point-Fenster jedes Mal, aber ich möchte ein bereits geöffnet zeigen, wenn es vorhanden ist.

dank

Antwort

1

hier ist der vollständige Code, den Prozess zu überprüfen, bereits geöffnet ist oder nicht Funktion CheckApplicationIsOpen.isOpenApplication() ist der Status ‚offen‘ oder Rückkehr ‚schließen‘ in main ist die Powerpoint-exe Überprüfung Start von nicht Task-Manager-Instanz mit

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package checkapplicationisopen; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

/** 
* 
* @author ANGEL 
*/ 
public class CheckApplicationIsOpen { 

    /** 
    * @param args the command line arguments 
    */ 


    /*** 
    * 
    * @param applicationName : whatever application you want to check if it is already open or not 
    * @return the result status if it is open then 'open', otherwise 'close' 
    */ 
    public static String isOpenApplication(String applicationName) 
    { 
     String result=""; 
     try { 
      String line; 
      String pidInfo =""; 

      Process p =Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe"); 

      BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); 

      while ((line = input.readLine()) != null) { 
       pidInfo+=line+"\n"; 
      } 
      System.out.println("Data : "+pidInfo); 
      input.close(); 

      if(pidInfo.contains(applicationName)) 
      { 
       System.out.println(applicationName+"is open"); 
       result="open"; 
      } 
      else 
      { 
       System.out.println("PowerPoint is Not Open"); 
       result="close"; 
       // 

      } 

     } catch (IOException ex) { 
      Logger.getLogger(CheckApplicationIsOpen.class.getName()).log(Level.SEVERE, null, ex); 
     } 
     return result; 
    } 

    public static void main(String[] args) { 

     try 
     { 
      if(!CheckApplicationIsOpen.isOpenApplication("POWERPNT.EXE").equals("open")) 
      { 
       Process p1=Runtime.getRuntime().exec("cmd.exe /C start powerpnt"); 
      }else 
      { 
       System.out.println("Application is Open"); 
      } 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

vielen Dank sandip.But ich möchte auch, dass, wenn Powerpoint ausgeführt wird, dann sollte es auf top.here in Ihrem Code sichtbar, wenn Powerpoint geöffnet ist dann nichts happens.I wollen, dass, wenn Powerpoint Open als seine Sichtbarkeit sollte auf True gesetzt werden. –

+0

PowerPoint lässt nur eine einzige Instanz von sich selbst zu, sodass Sie entweder die aktuell geöffnete Instanz (falls vorhanden) erhalten oder eine neue Instanz starten. Die einzige merkwürdige Tatsache ist, dass es manchmal eine unsichtbare Instanz von PowerPnt.EXE gibt, entweder weil die Instanz abgestürzt ist und sich nicht vollständig geschlossen hat ODER der Benutzer den Vorschaubereich in Windows Explorer sichtbar hat und ein PPT geöffnet ist das Vorschau-Fenster. –

Verwandte Themen