Surfbar-Skript nach Internetabbruch gesucht

  • Hallöchen.


    Da ich leider seit über einem Jahr meine berühmt berüchtigten Internetprobleme habe, die ständig meine Surfbars abschmieren lassen, suche ich nun ein Skript, dass nach jedem Verbindungsabbruch das besagte Browserfenster schließt und mit entsprechender Surfbar neu startet.


    Wodurch die Abstürze zustande kommen, soll hier keine Rolle spielen, da habe ich schon viel zu viel Energie hineingesteckt.


    Das Problem ist, dass bei einer Chance von ca. 50% die Surfbars die Bedienoberfläche oder eine Meldung der Fritzbox anzeigen. Ist das der Fall, hilft mir kein Tab Reloader mehr. Ich möchte aber nicht jede Viertelstunde meinen Browser per Skript neu starten, denn eine größere Zeitspanne möchte ich nicht einstellen.


    Also soll das Skript nur nach einem Verbindungsabbruch einen Restart durchführen, das alle 15 Minuten mein Browserbild oder URL auf Meldungen der Fritzbox prüft. Dabei muss ich aber mehrere Browser, virtuelle Desktops und Surflinks ansprechen können. Idealerweise kann es auch Browserprofile aufrufen. (optional)


    Hat jemand Ahnung davon? Ich bin auch bereit, dafür etwas zu bezahlen.


  • Wie ja im Chat ein wenig geteasert, hier mal ein paar Überlegungen dazu:


    https://stackoverflow.com/ques…t-if-specific-tab-is-open


    (Antwort 2 von Henrik)

    Wenn die Seite im Vordergrund ist, kann man den aktuellen Titel der Seite mittels > tasklist /V | /find /i "chrome" < ja auslesen.

    Eine Möglichkeit für ein Script wäre jetzt:

    wobei du echo "true..." und echo "false..." austauschen musst mit dem Befehl der statdessen ausgeführt werden soll. zb > taskkill /IM chrome.exe < oder deinen Script was den Browser neustartet
    2 Befehle hintereinander mit & trennen

    Code
    1. @ECHO OFF
    2. tasklist /V | find /i "chrome" | findstr "FRITZ!Box" && ( echo "true - Fritzbox im Vordergrund" ) || ( echo "false - alles ok")


    Wenn die Seite nicht im Vordergrund ist, müsste man sich mal die Möglichkeit mit der Chrome Extensions OpenList und sendkeys.bat mal genauer ansehen, die in der ersten Antwort beschrieben wird.

  • Dieses Scrip von mir prüft die Verbindung mit dem Internet und startet den Browser neu sollte keine Verbindung bestehen.


    ++++++++++


    @echo off

    Color 6


    :Loop

    echo ----------Verbunden----------

    timeout 900


    echo ----------Teste Verbindung...----------

    timeout 1

    ping -n 1 google.de

    if errorlevel 1 goto Fehler

    if errorlevel 0 goto Loop


    :Fehler

    echo ----------Verbindung getrennt!----------

    echo ----------Restart wird ausgefuehrt----------


    timeout 1

    taskkill /im (Browser z.b. chrome.exe)

    timeout 5

    start "" (Ziel Pfad des Browserprofils welches gestartet werden soll in " " )

    timeout 10


    echo ----------Teste Verbindung erneut...----------

    timeout 1

    ping -n 1 google.de

    if errorlevel 1 goto Fehler

    if errorlevel 0 goto Loop


    ++++++++++


    Sollte sich die Verbindung zum Internet ohne das neu Öffnen des Browser wiederherstellen könnte man bei diesem Script die Test-Intervalle anpassen.
    Damit das zuverlässig funktioniert würde ich den Intervall (in sec) auf 50% der Downtime stellen. Dauert eine Verbindungsunterbrechung also ca. 2min würde ich den Intervall auf 60 stellen.

    Die beanspruchten Ressourcen sollten sich für das Script auch bei schnelleren Intervallen in grenzen halten.


    Mit dem Oben genanntem Befehl bin ich noch nicht so vertraut. Sollte ich ihn verstehen werde ich versuchen das Script nochmal zu bearbeiten.

    Bis dahin sollte das helfen^^

  • Sodele...


    Sorry, dass es so lange dauerte matze199 , aber mein erster Test ging wie folgt aus:

    Code
    1. FEHLER: Der Prozess "chrome.exe" mit PID 4176 konnte nicht beendet werden.
    2. Ursache: Die Beendigung dieses Prozesses muss erzwungen werden
    3. (mit der Option /F)

    Ich habe mehrere solcher Fehler aufeinanderfolgend erhalten, nur die PID unterscheidet sich. Dabei waren es so viele Meldungen, dass es den Bildschirm mehr als füllte. Durch den fortlaufenden Timer ist es mir jedoch nicht möglich weiter nach oben zu scrollen, denn der Timer schickt einen jede Sekunde wieder nach ganz unten. Wie kann ich das pausieren?


    Mir ist auch ein kleiner Schreibfehler aufgefallen:

    Unter "Teste Verbindung erneut" steht die Zahl ohne Leerzeichen direkt an "Timeout" angehängt. Das habe ich selbst beheben können. ^^


    Noch so nebenbei...

    Da ich auch virtuelle Desktops nutze, muss ich das Skript auch auf jedem Desktop ausführen. Korrekt?


    Und der Zielpfad des Browserprofils lautet unter Chrome

    Code
    1. C:\Users\BENUTZERNAME\AppData\Local\Google\Chrome\User Data

    Korrekt?

  • Du kannst das Script mit "STRG + C" unterbrechen. pausieren geht nich.

    Füge der taskill Zeile ... noch den /F Parameter hinzu



    Für Virtuelle Desktops kann dir das hier ggf. hilfreich sein:

    https://www.howtogeek.com/2598…al-desktop-on-windows-10/



    Zielpfad sollte zur chrome.exe zeigen.

    %ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe

  • Das hatte ich mich ursprünglich auch gefragt, aber als ich nochmals las, stellte ich fest, dass dort "[...] Browserprofils, welches [...]" steht, nicht "Browser, welcher".

    Somit wären mit dem Skript keine Profile (optional) und virtuellen Desktops abgedeckt. Aber dann probiere ich mal den Pfad zu Chrome.exe

  • Das hatte ich mich ursprünglich auch gefragt, aber als ich nochmals las, stellte ich fest, dass dort "[...] Browserprofils, welches [...]" steht, nicht "Browser, welcher".

    Somit wären mit dem Skript keine Profile (optional) und virtuellen Desktops abgedeckt. Aber dann probiere ich mal den Pfad zu Chrome.exe

    ach ich hab da ja noch vergessen. wollt eigentlich noch dazu schreiben das du natürlich den chrome befehl brauchst um das userprofil X oder Y zu starten


    Code
    1. -profile-directory="Profil"
  • So sieht es jetzt aus. Meine IPv6 habe ich durch "XXXX" ersetzt. Die andere IPv4 gehört nicht mir.


    Nicht getestet habe ich die ' ' wegzulassen.

  • Das script startet Chrome auch nur wenn die Internetverbindung weg ist. - wenn er halt zu :Fehler springt

    bei dem Script wird vorrausgesetzt das der Browser schon anders gestartet wird.


    Da wäre es empfehlenswert die ganze Autostart Struktur entsprechend an das System anzupassen.
    Hier und da ein zusätzliches Script mitlaufen zu lassen heißt nicht das alles reibungslos funktionieren wird.


    https://administrator.de/wisse…ch-grundlagen-165781.html

  • Mir fällt dabei gerade ein, dass ich zwingend spätestens alle 120 Sekunden prüfen muss, ob ich online bin. Weil wenn geprüft wird und ich online bin, passiert ja nix. Stürzt aber genau danach der Router ab und bootet neu, bevor das Skript wieder prüft, so könnten trotzdem die Fritzbox-Fehlermeldungen bleiben. Ergo muss das Prüfintervall zwingend kleiner sein als ein Call des Skripts von der Fritzbox beantwortet wird.

  • Hey. Habe das mal überfolgen. Folgendes musst du genau bei den Variablen eingeben. Bei der ersten einfach nur --> chrome.exe <-- ohne " " !!

    Bei der zweiten den Pfad des Profils. Hierzu Rechtsklick auf den Chrombrowser und unter Eigenschaften. Hier den Pfad Ziel im Reiter Verknüpfung Kopieren. Schaut bei mir so aus: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe". Hinten denn dann "--profile-directory="Profile 1" dranhängen um das Profil zu wählen welches gestartet werden soll. Schaut bei mir dann so aus: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 1".
    Hier beachten das sich der Pfad in " " befindet!!

    Das du den Test-Intervall auf 50% der Downtime stellen muss damit es zuverlässig funktioniert hatte ich ja geschrieben. Sonst kann es zu genau dem problem kommen welches du beschrieben hast.

    Bei der nutzung von VM´s muss das Script auf jeder laufen. Das ist richtig.

  • Ist mir selber noch nicht ganz klar wie Chrom den Profillink generiert. Glaube das es unabhängig vom Profilnamen immer "Profil 1" "Profil " usw. ist. Sehe aber das du auf dem Desktop eine Profilverlinkung hast. Einfach da Rechtsklick --> Eigenschaften drauf und den "Ziel Pfad" unter dem Reiter Verknüpfungen Kopieren. Da ist das Profil dann direkt richtig im Pfad hinterlegt.
    Bin nicht davon ausgegangen das du diese Verknüpfung auf dem Desktop hast :D