Starten Sie Firefox und warten Sie, bis es geschlossen istJava

Java-Forum
Anonymous
 Starten Sie Firefox und warten Sie, bis es geschlossen ist

Post by Anonymous »

Frage < /h2>

Ich möchte den Firefox -Webbrowser als Prozess starten und dann warten, bis er geschlossen ist. Die Registerkarte in einem vorhandenen Fenster und der neu gestartete Prozess wird sofort beendet. Dies sollte meinen Wartevorgang nicht verwirren: Ich möchte auch ein neues Browserfenster (wenn dies irgendwie durch Befehlszeilenargumente durchgesetzt werden kann) und warten, bis dies geschlossen ist, oder das vorhandene Browserfenster aufbewahren und warten, bis alle Registerkarten, die aus meinem Prozess geschlossen sind. Java < /code> und Sie können annehmen, dass ich den Pfad des Browsers kenne. Hier muss ich im Grunde genommen ein neues Stapel -Skript in einem Temp -Ordner mit so etwas wie < /p>

erstellen

Code: Select all

start /WAIT "" "C:\Program Files\Internet Explorer\iexplore.exe" -noframemerging http://www.test.com/
< /code>

Ich führe dann das Batch -Skript anstelle des Browsers aus und lösche es, sobald ich mit dem Warten fertig bin. />  Mein Programm startet den Firefox -Browser als separater Prozess und bietet eine URL als Argument für diesen Prozess. Bisher ist dies einfach. Dies ist der schwierige Teil, da


 Viele moderne Browser starten mehrere Prozesse. Ich müsste auf alle warten. Entschuldigung, ich kenne kein besseres Wort, was ich meine ist: Ich beginne einen Prozess, der dann einen anderen Prozess startet und sofort endet, während der andere Prozess weiter läuft. Wenn ich auf den ursprünglich von meinem Programm gestarteten Browser -Prozess warte, wird das Warten fertiggestellt, während der Browser noch geöffnet ist. Der Benutzer ist immer noch auf meiner bereitgestellten URL, während mein Programm denkt, sie habe den Browser geschlossen. Dieses Problem kann möglicherweise verboten werden, indem ein Spezialbefehlsleitungsargument angegeben wird, z. B. noframemerging 
für den IE. /> Der Anwendungsfall ist, dass ich eine Webanwendung habe, die entweder lokal oder auf einem Server ausgeführt werden kann. Wenn es lokal ausgeführt wird, wird ein Webserver gestartet und öffnet den Browser, um die Eintragsseite zu besuchen. Sobald der Browser geschlossen ist, sollte diese Webanwendung ebenfalls heruntergefahren werden. Dies funktioniert für Internet Explorer zuverlässig. Für alle anderen Fälle muss der Benutzer den Browser und dann explizit die Webanwendung schließen. Wenn ich also zuverlässig darauf warten könnte, dass Firefox fertig ist, würde dies die Benutzererfahrung viel besser machen. Dies beinhaltet Spezialbefehlsleitungsargumente in den Browser. /> Jede plattformunabhängige Antwort (Arbeiten sowohl Windows als auch Linux) wird gegenüber plattformabhängigen Grundsätzen bevorzugt. Da ich verschiedene Browser unterstützen möchte (siehe "PS" unten), möchte ich vermeiden, eine Bibliothek pro Browser einzuschließen. Schließlich kann ich keine kommerziellen oder geschlossenen Quellbibliotheken verwenden, aber wenn keine bessere Antwort auftaucht, werde ich natürlich jede Arbeitslösung mit einer Akzeptanz ehren. Ich werde die erste (einigermaßen gute) bearbeitete Antwort von Typ "1" akzeptieren. Wenn die Antworten auf eine niedrigere Präferenz auftauchen, werde ich einige Tage warten, bevor ich das Beste davon akzeptiere. Da ich glaube, dass Browser in den Befehlszeilenargumenten, die sie verdauen, sehr unterschiedlich sind, wie die Startthreads und Subprozesse, ich denke, dies ist sinnvoll. Chrom: Start Chrom und warten Sie, bis es geschlossen ist.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post