2016-08-27 82 views
0

我想設計一個運行另一個第三方應用程序時運行的程序。例如,我想在Skype窗口打開時繼續循環程序。這可能嗎??JAVA:可以檢測到其他正在打開的第三方應用程序

public class test { 
    public static void main(String[] args) throws AWTException, InterruptedException { 
     Robot robot = new Robot(); 
     int right = InputEvent.BUTTON3_DOWN_MASK; 
     int left = InputEvent.BUTTON1_DOWN_MASK; 

     TimeUnit.SECONDS.sleep(3); 
     robot.mouseMove(1720, 960); 
     robot.mousePress(right); 
     TimeUnit.SECONDS.sleep(1); 
     robot.mouseRelease(right); 
} 

我想在skype窗口打開時循環這段代碼。

+0

請通過[旅遊],[幫助]和[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)部分來了解該網站的工作原理和幫助您改善當前和未來的問題,這可以幫助您獲得更好的答案。 –

+0

再一次,請查看我在上面評論中給你的鏈接。在那裏你會了解到你不應該在註釋中不能格式化的代碼。此外,您還需要提供有關您的問題和代碼的更多相關細節。請同時查閱Jon Skeet的[「堆棧溢出問題清單」](http://meta.stackoverflow.com/q/260648),這對於編寫好的問題很有用。 –

+0

我已經添加了代碼,希望能夠澄清 –

回答

1

您可以嘗試這樣的事情來查看哪些應用程序仍在運行;

String line = ""; 
Process proc = Runtime.getRuntime().exec("tasklist.exe"); 
BufferedReader input = new BufferedReader(
     new InputStreamReader(proc.getInputStream())); 
while ((line=input.readLine()) != null) { 
    // now you can do what you want e.g: you can check the line if contains skype application name or other skype belongings information. 
    System.out.println(line); 
} 
input.close(); 

程序的輸出是:

Image Name      PID Session Name  Session# Mem Usage 
========================= ======== ================ =========== ============ 
Skype.exe      9492 Console     1 231,608 K 
... 

所以while-loop可以檢查

if(line.toLowerCase().contains("skype")) { 
    // do what you want if skype is running 
} else { 
    // do what you want if skype is not running 
} 

希望這有助於!

+0

這是如何工作的?我對編程非常陌生。我如何將這個實現到我當前的代碼? –

+0

現在看看答案。 –

相關問題