o2 HomeBox 6441 C# Reboot Console Application

duketwo

Neuer User
Mitglied seit
27 Okt 2015
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
credits: me

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HomeBox6441_Reboot
{
    class Program
    {

        private static bool completed;
        private static WebBrowser browser;

        [STAThread]
        static void Main(string[] args)
        {
            var start = DateTime.UtcNow;
            browser = new WebBrowser();
            browser.Navigate("http://192.168.1.1/restore.htm");

            browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
            
            while (!completed)
            {
                Application.DoEvents();
                Thread.Sleep(1);
            }

            // override javascript window confirm function to return always true
            var head = browser.Document.GetElementsByTagName("head")[0];
            var script = browser.Document.CreateElement("script");
            script.SetAttribute("type", "text/javascript");
            script.SetAttribute("text", "window.alert = function () { }; window.confirm=function () { return true; }; ");
            head.AppendChild(script);

            // click the 'Neu starten' button
            HtmlElementCollection elemenets = browser.Document.All;

            foreach (HtmlElement e in elemenets)
            {
                if (e.GetAttribute("value") != null && e.GetAttribute("value").Equals(("Neu starten")))
                {
                    e.InvokeMember("Click");
                    Console.WriteLine("Clicked");
                    break;
                }
            }

            while(start.AddSeconds(10) > DateTime.UtcNow)
            {
                Application.DoEvents();
                Thread.Sleep(1);
            }

        }

        static void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            Console.WriteLine(browser.Document.Body.InnerHtml);
            completed = true;
        }

    }
}
 
Kenn mich mit C-Sharp zu wenig aus.

- Kleines Howto zur Ausführung?
- Ich brauche Visual Studio installiert?

Sehe ich es richtig, dass nichts anderes gemacht wird, als mit einer Browser-Instanz auf die GUI zuzugreifen und dann über die "restore.htm" den Reboot auszuführen? Welchen weiterführenden Zweck hat der Code Snippet (da man einen Reboot ja auch von Hand ausführen könnte)? Einfach nur um auf Knopfdruck den Reboot anzustoßen? Hast Du Dir das geschrieben weil deine Box öfters aussteigt und du rebooten "musst" oder warum?

Gruß
Edge
 
- Automatisch Neue IP Adresse
- Zwangstrennung per Task auf einen Zeitpunkt legen

Zu Kompilieren reicht Sharpdevelop und Net 4.0/4.5.

Ja es tut nichts anderes als den Reboot-Button zu drücken und das vorhandene Javascript zu manipulieren, so dass die Bestätigungsmeldung nicht erscheint.

Andere Wege per Curl sind schwer bis unmöglich (Curl besitzt keinen JS Interpreter), da beim Drücken des Knopfes ein Token per Javascript generiert wird, welches wiederum per Post übergeben wird.
 
Hallo der Thread ist schon etwas alt, aber kann mir jemand sagen wie das da oben funktioniert?
Ich habe auch eine Homebox 6441 von O2 und bin auch der suche nach einen reconnect tool. :/
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.