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. :/
 
Kostenlos!

Statistik des Forums

Themen
248,854
Beiträge
2,302,913
Mitglieder
378,504
Neuestes Mitglied
Hallo61Hallo