Browser erstellen möglich ?

10/26/2013 22:47 Kabal931#1
Hey, ist es möglich, einen Internet Browser mit Autoit zu erstellen ?
Ohne die IE.au3 oder FF.au3 ?
10/26/2013 23:25 alpines#2
Natürlich ist es das, man kann mit TCP oder WinHttp auf die Seite navigieren, ein bisschen umständlicher aber umso schneller und sauberer.
10/26/2013 23:29 Kabal931#3
Und wie soll man das dan immer sehen ?
Da muss man doch dann immer auf die .html klciken ?
10/26/2013 23:35 butter123#4
du müsstest dir einen eigenen interpreter schreiben, der, falls du was anzeigen willst, für dich den htmlcode in was sichtbares umwandelt. das ist aber ein riesen aufwand.
10/27/2013 02:45 alpines#5
Das ist falsch, wenn du dir was anzeigen willst, kannst du dir auch die Daten per TCP / WinHttp holen und sie per _IE Objekt darstellen.
Wenn man aber nur Daten auslesen möchte, Mineralienstand o. ä. dann eignet sich StringRegExp hervorragend dafür.
10/27/2013 11:16 butter123#6
allerdings wollte er es ja ohne ie.au3 machen
10/27/2013 12:56 alpines#7
Den HTML Renderer selber zu schreiben ist natürlich eine Arbeit, man könnte es aber per ObjCreate irgendwie einbinden, aber das wäre zu umständlich.
Wenn er mit dem _IE nicht surfen will sondern nur anzeigen will dann ist das ja kein Problem.
10/28/2013 17:50 Myrti#8
Code:
Func Example()
    Local $oIE, $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg
    
    $oIE = ObjCreate("Shell.Explorer.2")

    GUICreate("Embedded Web control Test", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $GUIActiveX = GUICtrlCreateObj ($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("<-", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("->", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 330, 420, 100, 30)

    GUISetState()       ;Show GUI

    $oIE.navigate("<a href='http://www.elitepvpers.com/forum/members/5003104-myrti.html' class='bbc_url' title=''>http://www.elitepvpers.com/forum/members/5003104-myrti.html"</a>)

    While 1
        $msg = GUIGetMsg()

        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $msg = $GUI_Button_Home
                $oIE.navigate("<a href='http://www.elitepvpers.com/forum/members/5003104-myrti.html' class='bbc_url' title=''>http://www.elitepvpers.com/forum/members/5003104-myrti.html"</a>)
            Case $msg = $GUI_Button_Back
                $oIE.GoBack
            Case $msg = $GUI_Button_Forward
                $oIE.GoForward
            Case $msg = $GUI_Button_Stop
                $oIE.Stop
        EndSelect
        
    WEnd

    GUIDelete()
EndFunc

Tutorial :
10/28/2013 18:11 alpines#9
Das ist und bleibt kein Webserver, das hab ich schonmal jemandem gesagt der es in Tutorials released hat.
Bitte entschuldige meinen Ausdruck aber das ist einfach nur sowas von extrem schlecht, das das jeder Vollpfosten hinkriegt.
Wenn du einen vernünftigen Webbrowser programmieren willst, solltest du zumindest die Sachen alle einzeln per WinHttp anfordern und sie dann höchstens mit dem IE Objekt erstellen.
Der HTML Renderer um das anzuzeigen selber zu coden dauert viel zu lange aber das ist kein Webbrowser.

Desweiteren sagt der TE, das er kein IE haben möchte zum browsen.
10/28/2013 21:30 masterplc#10
Mein Vorschlag wäre das du das einfach vergisst. Denn (korrigiert mich wenn ich falsch liege) ein html renderer ist eine höllenarbeit. Du musst BUGFREI jede Feinheit im html code in etwas sichtbares umwandeln. Und dann musst du das auch noch schnell (sicher eigentlich auch aber wenn du das im kleinen Rahmen machst interessiert das auch nicht) und möglichst stabil machen .

Die ganzen "Programmiere dir einen eigenen Browser in 3 Minuten" tutorials die meistens von Kindern mit dem IQ einer Stubenfliege und einer zu hohen Stimme verfasst wurden (oder mit der urlaubskamera aufgenommen werden) stimmen eindeutig Nicht. Denn der "neue Browser" der herauskommt ist ganz genauso schlecht wie der echte Internet Explorer, weil der "Browser" eine GUI ist in die ein IE Objekt eingebettet wurde.

Also bette einfach falls es nötig ist den IE ein und sei glücklich damit.

Das anfordern der html Dokumente mit winhttp ist meiner Meinung nach nur ein versuch so zu tun als ob man selbst einen Browser gecodet hätte. Denn winhttp kann man sehr einfach nutzen. Das html Dokument anzuzeigen (die einzige wirklich schwere Aufgabe) übernimmt nämlich der IE.
11/03/2013 00:34 Looneytune#11
Quote:
Originally Posted by Myrti View Post
Code:
Func Example()
    Local $oIE, $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg
    
    $oIE = ObjCreate("Shell.Explorer.2")

    GUICreate("Embedded Web control Test", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $GUIActiveX = GUICtrlCreateObj ($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("<-", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("->", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 330, 420, 100, 30)

    GUISetState()       ;Show GUI

    $oIE.navigate("<a href='http://www.elitepvpers.com/forum/members/5003104-myrti.html' class='bbc_url' title=''>http://www.elitepvpers.com/forum/members/5003104-myrti.html"</a>)

    While 1
        $msg = GUIGetMsg()

        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $msg = $GUI_Button_Home
                $oIE.navigate("<a href='http://www.elitepvpers.com/forum/members/5003104-myrti.html' class='bbc_url' title=''>http://www.elitepvpers.com/forum/members/5003104-myrti.html"</a>)
            Case $msg = $GUI_Button_Back
                $oIE.GoBack
            Case $msg = $GUI_Button_Forward
                $oIE.GoForward
            Case $msg = $GUI_Button_Stop
                $oIE.Stop
        EndSelect
        
    WEnd

    GUIDelete()
EndFunc
[/url]
So etwas ist immer völliger Schrott. Wenn man schon IE verwendet, dann doch bitte das Original. Ich will hier nichts untergraben, aber einen eigenen Browser, so wie sich hier das einige vorstellen, schreibt hier keiner. Hier werden lediglich vorhandene Browser eingebunden, nicht mehr, nicht weniger. Wer in der Lage ist, einen true eigenen Browser zu schreiben, kommt nicht mit AutoIT an. Wenn ihr aber trotzdem so einen 50 Zeilen Browser haben wollt, schaut hier auf elitepvpers in den Mini-Release Thread, da sind 100 Kids die ihren """eigenen Browser""" (ja ich hau gleich 3x " raus) released haben. #useless