Kathrin: window.close überwachen

Hallo,

ich würde gerne eine bat-Datei beim Schließen einer Seite ausführen lassen. Wir haben einen Apache-Webserver, der im Hintergrund läuft und das ganze wir im Internet Explorer angezeigt. Soll für IE 6-8 laufen.

Bisher hatten wir einen Button, wenn man drauf geklickt hat, haben wir die Seite schließen lassen udn eine bat-Datei aufgerufen um den Apache herunterzufahren. Allerdings habe ich jetzt festgestellt, dass das natürlich nicht geht, wenn der User nein klickt, dann fährt der Apache herunter, jedoch ist die Seite ja weiterhin offen, d.h. der User kann nichts mehr anschauen weil der Apache nicht mehr läuft.

Ich habe jetzt überlegt ob man das x oben irgendwie überwachen könnte, wenn man darauf klickt, dass man die bat-Datei ausführt, vielleicht käme dann nicht die doofe Abfrage oder ob man die Abfrage mit Ja oder Nein irgendwie den Rückgabewert bekommen könnte und dadurch das Fensterschließen überwachen kann.

Wäre echt super, wenn jmd einen Tipp für mich hätte, bin etwas ratlos :(

LG Kathrin

  1. Hi,

    ich würde gerne eine bat-Datei beim Schließen einer Seite ausführen lassen.

    das geht nicht - jedenfalls nicht zuverlässig.

    Bisher hatten wir einen Button, wenn man drauf geklickt hat, haben wir die Seite schließen lassen udn eine bat-Datei aufgerufen um den Apache herunterzufahren. Allerdings habe ich jetzt festgestellt, dass das natürlich nicht geht, wenn der User nein klickt, dann fährt der Apache herunter, jedoch ist die Seite ja weiterhin offen, d.h. der User kann nichts mehr anschauen weil der Apache nicht mehr läuft.

    Und warum wollt ihr den Apachen beenden? Lass ihn doch einfach laufen, der beißt nicht. Und solange er nichts zu tun hat, verbraucht er auch praktisch Null CPU-Leistung und nur wenig RAM.

    Ich habe jetzt überlegt ob man das x oben irgendwie überwachen könnte, wenn man darauf klickt, dass man die bat-Datei ausführt, vielleicht käme dann nicht die doofe Abfrage oder ob man die Abfrage mit Ja oder Nein irgendwie den Rückgabewert bekommen könnte und dadurch das Fensterschließen überwachen kann.

    Es gibt den Eventhandler onunload. Aber damit bist du auch wieder auf Javascript und auf die Kooperation des Nutzers angewiesen.

    Wenn du vor Krücken nicht zurückschreckst, könntest du ja den Start des Apachen, den Aufruf des IE und das nachfolgende Herunterfahren des Apachen alles sequentiell in eine Batchdatei schreiben. So wäre es egal, auf welche Weise der Browser geschlossen wird bzw. die Batchdatei macht erst weiter, wenn er *wirklich* beendet wird.

    Aber wie gesagt: Ich halte das Vorhaben nicht für sinnvoll. Idealerweise sollte der Apache als Dienst beim Systemstart mit gestartet und beim Herunterfahren des Systems beendet werden.

    Ciao,
     Martin

    --
    Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. HI Martin,

      Bisher hatten wir einen Button, wenn man drauf geklickt hat, haben wir die Seite schließen lassen udn eine bat-Datei aufgerufen um den Apache herunterzufahren. Allerdings habe ich jetzt festgestellt, dass das natürlich nicht geht, wenn der User nein klickt, dann fährt der Apache herunter, jedoch ist die Seite ja weiterhin offen, d.h. der User kann nichts mehr anschauen weil der Apache nicht mehr läuft.

      Und warum wollt ihr den Apachen beenden? Lass ihn doch einfach laufen, der beißt nicht. Und solange er nichts zu tun hat, verbraucht er auch praktisch Null CPU-Leistung und nur wenig RAM.

      es ist so dass bei uns der Apache mit einer start.exe gestartet wird. Exe weil wir beim Start noch ein paar Überprüfungen durchführen lassen, die mit einer Batch-Datei nicht (oder nur schwer) möglich sind. Normalerweise sollte der Apache sich automatisch beenden beim Schließen des Fensters, wenn dies möglich ist, falls der User doch die Software nochmal starten möchte. Außerdem könnte ihn evtl stören dass so ein cmd-Fenster dann offen bleibt. Früher beim IE6 konnte man über die Prozessteuerung von CreateProcess in C++ den Prozess vom IE überwachen aber nach der Änderung der Sicherheitseinstellungen beim IE8 geht das jetzt nicht mehr so wie wir das wollen.

      Ich habe jetzt überlegt ob man das x oben irgendwie überwachen könnte, wenn man darauf klickt, dass man die bat-Datei ausführt, vielleicht käme dann nicht die doofe Abfrage oder ob man die Abfrage mit Ja oder Nein irgendwie den Rückgabewert bekommen könnte und dadurch das Fensterschließen überwachen kann.

      Es gibt den Eventhandler onunload. Aber damit bist du auch wieder auf Javascript und auf die Kooperation des Nutzers angewiesen.

      Wenn du vor Krücken nicht zurückschreckst, könntest du ja den Start des Apachen, den Aufruf des IE und das nachfolgende Herunterfahren des Apachen alles sequentiell in eine Batchdatei schreiben. So wäre es egal, auf welche Weise der Browser geschlossen wird bzw. die Batchdatei macht erst weiter, wenn er *wirklich* beendet wird.

      Aber wie gesagt: Ich halte das Vorhaben nicht für sinnvoll. Idealerweise sollte der Apache als Dienst beim Systemstart mit gestartet und beim Herunterfahren des Systems beendet werden.

      Alles in eine Batchdabei geht leider nicht, da wir noch andere Sachen prüfen, ob bestimmte Software installiert ist, ob Einstellungen im IE passen, ... Ich habe jetzt etwas gefunden womit es im IE8 unter XP funktioniert, wobei das ganze auf jeden Fall auch unter Windows2000 mit IE6 laufen muss, das bezweifel ich dass das geht. ich kopiers aber mal rein:
      function close(){
      document.location.href="http://localhost/cgi-bin/exit.bat";
          top.window.opener='X';
          top.window.open('','_parent','');
          top.window.close();
      }
      close() rufe ich dann beim Klicken auf den Button auf, so kommt die Frage vom IE nicht mehr ob er wirklich beenden soll :o aber ob das auf den meisten IE und Betriebssystemen läuft fragt sich eben und ob das so sauber ist auch ;-)

      Ciao,
      Martin

      »»

      Vielen Dank auf jeden Fall schon mal
      Viele Grüße
      Kathrin