2011-09-13 144 views
1

我現在正在編寫一個簡單的程序來模擬真實用戶的網上衝浪。但是,如果屏幕上彈出或彈出任何程序,我需要將其最小化或關閉,以防止它與錯誤的程序進行交互。所以我必須監視正在運行的進程或檢測新進程?我嘗試使用Javascript,但它需要在IE中的ActiveX和相當成問題。有人可以告訴我如何開始編寫那部分代碼嗎?我google了一下,它說這些過程window.opener.close()或Process.Destroy()命令。謝謝。以下是我的代碼簡單草稿。Java殺死Popup進程

package javaapplication1; 
import java.util.Random; 

public class JavaApplication1 
{ 
    public static void main(String[] args) 
    { 
     try 
     { 
      Random rand = new Random(); 
      int n = 1 + rand.nextInt(3); 
      if (n == 1) 
      { 
       String myURL = "www.facebook.com"; 
       java.awt.Desktop myNewBrowserDesktop = java.awt.Desktop.getDesktop(); 
       java.net.URI myNewLocation = new java.net.URI(myURL); 
       myNewBrowserDesktop.browse(myNewLocation); 
      } 
      if (n == 2) 
      { 
       String myURL = "www.google.com"; 
       java.awt.Desktop myNewBrowserDesktop = java.awt.Desktop.getDesktop(); 
       java.net.URI myNewLocation = new java.net.URI(myURL); 
       myNewBrowserDesktop.browse(myNewLocation); 
      } 
      if (n == 3) 
      { 
       String myURL = "www.yahoo.com"; 
       java.awt.Desktop myNewBrowserDesktop = java.awt.Desktop.getDesktop(); 
       java.net.URI myNewLocation = new java.net.URI(myURL); 
       myNewBrowserDesktop.browse(myNewLocation); 
      } 
     } 
     catch(Exception e) 
     { 
     } 
    } 
} 

回答

0

這是不能做到的。 Desktop.browseLaunches the default browser to display the URI。瀏覽器顯示的文檔(html)的內容可能會導致瀏覽器打開一個新窗口或執行瀏覽器在瀏覽器中手動瀏覽該URI時可能執行的任何操作。

在大多數情況下,瀏覽器不會創建新的進程。無論是創建新流程還是僅創建窗口,它都不會向您的調用程序提供任何通知;所以你的調用程序無法控制這些窗口。

您可以使用嵌入式瀏覽器做類似的事情。

+0

謝謝,如果我試圖使iexplore.exe進程(IE8在我的情況下)總是「帶到前面」並覆蓋所有可能的彈出程序並將其放入Java中的無限for循環? –

+0

你如何「verride所有可能的彈出程序」?無限循環與此有什麼關係? –

+0

因爲模擬網上衝浪會話會發生很長一段時間,所以爲了確保沒有彈出程序干擾瀏覽器,我必須使用無限循環來連續檢查。 –