Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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?

Geschrieben
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.

Geschrieben
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)?

Geschrieben
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 :)

Geschrieben
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

Geschrieben

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")

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...