2011-09-13 2 views
1

Je suis en train d'écrire un programme simple pour simuler le surf sur le web. Cependant, s'il y a une popup ou un programme qui apparaît à l'écran, je dois le réduire ou le fermer pour l'empêcher d'interagir avec le mauvais programme. Donc, je dois surveiller le processus en cours ou détecter un nouveau processus? J'ai essayé d'utiliser Javascript mais il nécessite ActiveX dans IE et assez problématique. Quelqu'un peut-il me conseiller sur la façon de commencer à écrire cette partie du code? Je ai googlé un peu et il dit que les processus processus window.opener.close() ou Process.Destroy(). Merci. Voici un brouillon simple de mon code.Java Killing Popup Process

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) 
     { 
     } 
    } 
} 

Répondre

0

Cela ne peut pas être fait. Desktop.browseLaunches the default browser to display the URI. Le contenu du document (html) affiché par le navigateur peut obliger le navigateur à ouvrir une nouvelle fenêtre ou à faire quoi que ce soit d'autre qu'un navigateur puisse faire lorsque vous parcourez cet URI manuellement dans votre navigateur.

Dans la plupart des cas, le navigateur ne créera pas de nouveau processus. Indépendamment du fait qu'il crée un nouveau processus ou seulement une fenêtre, il ne fournira aucune notification à votre programme appelant; donc votre programme appelant n'a aucun moyen de contrôler ces fenêtres.

Vous pouvez faire quelque chose comme ceci en utilisant un navigateur intégré.

+0

Merci, et si j'essayais de faire le processus iexplore.exe (IE8 dans mon cas) pour toujours "Bring to Front" et remplacer tous les programmes popup possibles et le mettre dans une boucle infinie pour Java? –

+0

Comment "verridez-vous tous les programmes contextuels possibles"? Qu'est-ce que la boucle infinie doit avoir avec ça? –

+0

Parce que la session de simulation de navigation sur le Web aura lieu pendant une longue période, afin de s'assurer qu'aucun programme popup n'interfère avec le navigateur, je dois utiliser une boucle infinie pour vérifier en permanence. –