SichlMichl Geschrieben 16. September 2005 Geschrieben 16. September 2005 Hallo zusammen, ich hab mal wieder eine doofe Frage: Wie kann ich mit Perl herausfinden ob ein Browser Fenster geöffnet ist? Ich hoffe ich habe es einigermaßen verständlich erklärt. Wäre toll wenn mir jemand helfen könnte. Gruß Michl Zitieren
Monty82 Geschrieben 16. September 2005 Geschrieben 16. September 2005 Läuft Perl als CGI-Script auf dem Webserver, oder lokal dort, wo auch das IExplorer-Fenster geöffnet ist? Zitieren
SichlMichl Geschrieben 16. September 2005 Autor Geschrieben 16. September 2005 Es läuft auf einem Webserver Zitieren
Monty82 Geschrieben 16. September 2005 Geschrieben 16. September 2005 Na dann fühl Dich mal frei, mehr Angaben zu posten... Was für ein Script/eine Anwendung? Wann soll geprüft werden, ob ein Browserfenster geöffnet ist? Wie wird das Perl-Script aufgerufen, das dann prüfen soll, ob das Fenster geöffnet ist? Zitieren
perdian Geschrieben 16. September 2005 Geschrieben 16. September 2005 Wie kann ich mit Perl herausfinden ob ein Browser Fenster geöffnet ist?Ich weiss nicht genau ob ich dich richtig verstanden habe (vielleicht erklärst du mal, was du genau überprüfen willst) aber pauschal sage ich einfach mal nein. Perl wird serverseitig abgearbeitet und bekommt überhaupt nicht mit, dass es einen Browser gibt - der einzige Weg für den Webserver mit der "Aussenwelt" zu kommunizieren ist über HTTP und dem Protokoll ist es vollkommen egal, ob die Response nun über einen Browser gerendert, oder sonstwie intern verarbeitet wird. Zitieren
SichlMichl Geschrieben 19. September 2005 Autor Geschrieben 19. September 2005 Ich muss meine Frage vielleicht anders formulieren: Mit welchem Befehl kann ich unter Perl ein Browserfenster öffnen? Zitieren
perdian Geschrieben 19. September 2005 Geschrieben 19. September 2005 Ich muss meine Frage vielleicht anders formulieren:Nein, du musst deutlich sagen, was du genau machen willst. Soll das Fenster auf dem Rechner geöffnet werden, auf dem auch der Perl Interpreter selber aufgerufen wird (möglich, durch Aufruf eines Systembefehls) oder auf dem Rechner, der die HTML Seite bekommt, die vom Perl-Skript generiert worden ist (in diesem Fall: nicht möglich)? Zitieren
SichlMichl Geschrieben 19. September 2005 Autor Geschrieben 19. September 2005 Soll das Fenster auf dem Rechner geöffnet werden, auf dem auch der Perl Interpreter selber aufgerufen wird (möglich, durch Aufruf eines Systembefehls) Besser hätte ich es nicht formulieren können Zitieren
kills Geschrieben 19. September 2005 Geschrieben 19. September 2005 Besser hätte ich es nicht formulieren können steht ja hinten drann, obs möglich ist oder nicht... Zitieren
perdian Geschrieben 19. September 2005 Geschrieben 19. September 2005 Besser hätte ich es nicht formulieren können Dann hast du auch direkt die Antwort da stehen: möglich, durch Aufruf eines Systembefehls. Wer lesen kann ist klar im Vorteil. Zitieren
SichlMichl Geschrieben 20. September 2005 Autor Geschrieben 20. September 2005 Ja, und wie lautet der Systembefehl??? Zitieren
perdian Geschrieben 20. September 2005 Geschrieben 20. September 2005 Ja, und wie lautet der Systembefehl???Wie wäre es, wenn du auch ein wenig Arbeit selbst machen würdest?! Unter Windows lautet der Befehl um den IE zu öffnen z.B.: cmd /c "C:\Programme\Internet Explorer\IEXPLORE.EXE" bzw. dasselbe für den Firefox: cmd /c "C:\Programme\Mozilla Firefox\firefox.exe" Für Linux z.B. /usr/local/firefox/firefox Installationsverzeichnisse evtl. anpassen Zitieren
etreu Geschrieben 20. September 2005 Geschrieben 20. September 2005 Systembefehle kannst du unter Perl u.a. mittels system() aufrufen. Zitieren
iscariot Geschrieben 20. September 2005 Geschrieben 20. September 2005 Für Linux z.B. /usr/local/firefox/firefox Unter Linux und aehnlichen Systemen wuerde ich die Sache (je nach Anforderung) anders angehen. Je nachdem wie das Programm laeuft, wirst du deinen Browser unterschiedlich oeffnen wollen. Wenn Perl einfach nur den Browser starten soll, dann langt ein simples: #!/usr/local/bin/perl -w system("/pfad/zu/deinem/browser") Code, der nach system() folgt, wird erst ausgefuehrt, wenn der Browser wieder "geschlossen" wurde. Falls also der Browser gestartet werden soll und sofort weiter Code ausgefuehrt werden soll, muss die sache etwas anders aussehen: #!/usr/local/bin/perl -w use POSIX qw(setsid); setsid(); fork(); exec("/pfad/zu/deinem/browser"); # achtung: exec returned nicht. # code... Falls dem Browser jetzt noch dynamisch generierte Option uebergeben werden, solltest du, um auf Nummer sicher zu gehen, noch die Verwendung von qx// oder qr// in Betracht ziehen. mfg iscariot Zitieren
SichlMichl Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Ich hab des jetzt soweit umgesetzt und klappt auch ganz gut. Danke dafür!!! Aber jetzt hat sich ein neues Problem ergeben. Und zwar folgendes: Ich starte das Script, es öffnet das Browserfenster und die Seite steht. Wenn ich aber das Script erneut ausführe, öffnet er kein neues Fenster sondern benutzt das gleiche wieder. Das möchte ich nicht. Ich möchte dass er ein neues Fenster öffnet/benutzt! Weiß vielleicht jemand wie ich dieses Problem auch noch in den Griff bekomme? Folgendermaßen ruf ich den Browser auf: system("/pfad/zu/deinem/browser" "URL") Zitieren
perdian Geschrieben 21. September 2005 Geschrieben 21. September 2005 Weiß vielleicht jemand wie ich dieses Problem auch noch in den Griff bekomme?Ohne eine Info welcher Browser verwendet wird: Nein! Zitieren
SichlMichl Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Netscape und IE Zitieren
Amstelchen Geschrieben 21. September 2005 Geschrieben 21. September 2005 versuch es mal mit iexplore -new (ungetestet). Zitieren
SichlMichl Geschrieben 22. September 2005 Autor Geschrieben 22. September 2005 Das hat leider nicht gefunzt. Hast du vielleicht noch eine andere Idee? Zitieren
SichlMichl Geschrieben 22. September 2005 Autor Geschrieben 22. September 2005 Hi nochmal, meine Frage hat sich erledigt! Ich habs! Es geht mit folgendem Befehl: exec("\"Pfad\zum\Browser\" URL"); Danke für euere hilfe!!! Gruß Michl Zitieren
SichlMichl Geschrieben 23. September 2005 Autor Geschrieben 23. September 2005 Hi, ich nochmal. Ich weiß ich nerve, aber: Es hat sich ein neues Problem aufgetan. Zum meinem Code ist noch neuer hinzu gekommen. exec() bringt nun das Problem mit sich, dass Code nach eben diesem Befehl nicht weiter ausgeführt wird. Die vermeintliche Problemlösung wurde zwar oben schon mal gepostet, aber es funktioniert bei mir nicht Wenn ich das ganze mit system() mache, läuft das Perl-Script erst weiter, wenn ich den Browser wieder schließe. So soll es auch nicht sein. Hat da von euch noch jemand vielleicht eine Idee? Wäre nett, wenn mir jemand helfen könnte! Gruß Michl Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.