Eigener Internetbrowser

  • Also ich habe das skript(uncompilliert) in den anhang geladen(mit anderen wichtigen sachen)
    Ich möchte folgende dinge erreichen:
    -es soll beim öffnen eines neuen tabs auch schon gleich ein inetobjekt gebildet werden bei dem alle funktionen klappen, also mit der adressinput die lesezeichen uws. aber nur in dem gerade aktuellen geöffneten tab


    Unten im anhang :D :D :D

  • Stell doch einfach die Source rein und schildere dein Problem

    Hat er doch. Siehe angehängtes Archiv

    wieso kann mir denn keiner helfen???


    Ehrlich gesagt, müsste man das Script zu 90% umschreiben um es effizient zu machen. Ich hab ehrlich gesagt keine Lust dazu. Schau dir mal Arrays (!) und For-Next-Schleifen an. Damit kannst du deinen Code um weit über 50% (grob übern daumen) kürzen, und auch die von dir gewünschten Funktionen einbauen...

  • Ein Array ist eine Liste. Statt 10 Variablen machst du dir einen Array und gehst ihn mit ner Schleife durch

    Statt:

    Spoiler anzeigen
    [autoit]

    $Variable1 = "Nummer Eins"
    $Variable2 = "Nummer Zwei"
    $Variable3 = "Nummer Drei"
    $Variable4 = "Nummer Vier"
    $Variable5 = "Nummer Fünf"
    $Variable6 = "Nummer Sechs"
    $Variable7 = "Nummer Sieben"
    $Variable8 = "Nummer Acht"
    $Variable9 = "Nummer Neun"
    $Variable10 = "Nummer Zehn"

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"",$Variable1)
    MsgBox(0,"",$Variable2)
    MsgBox(0,"",$Variable3)
    MsgBox(0,"",$Variable4)
    MsgBox(0,"",$Variable5)
    MsgBox(0,"",$Variable6)
    MsgBox(0,"",$Variable7)
    MsgBox(0,"",$Variable8)
    MsgBox(0,"",$Variable9)
    MsgBox(0,"",$Variable10)

    [/autoit]

    lieber

    Spoiler anzeigen
    [autoit]

    DIM $Variable[10] = ["Nummer Eins","Nummer Zwei","Nummer Drei","Nummer Vier","Nummer Fünf","Nummer Sechs","Nummer Sieben","Nummer Acht","Nummer Neun","Nummer Zehn"]
    For $i = 0 to 9 ;Array fängt bei 0 an. Deswegen 0-9 statt 1-10
    MsgBox(0,"",$Variable[$i])
    Next

    [/autoit]

    Schau dir mal das AutoIt Tutorial zu Arrays an.

  • ausserdem haben viele vielleicht auch keine lust den Script herunterzuladen
    Ein spoiler ist immer besser als ein Anhang :!:

  • Mal ganz nebenbei:
    Ein eigener Browser ist doch eigentlich unmöglich !?
    Also mal nutzt ja dann wahrscheinlich _IECreateEmbeeded.
    Aber das benutzt doch wiederum den IE.
    Oder man ist in der Lage den Quellcode zu laden und den selber in einem Fenster zu interpretieren.
    Das wäre aber ne Mords Arbeit.

    Nur mal so ^^

  • Das wäre aber ne Mords Arbeit.

    Das "Mords" kannst du nochmal 20 Schriftgrößen größer schreiben.
    - Man müsste HTTP Header verwalten
    - Eine eigene Render-Engine schreiben, die den Quelltext auf den Bildschirm malt
    - einen HTTP/JavaScript/CSS/...-Interpreter
    - Cookies und Cache verwalten
    - und und und

    Es sind wahrscheinlich 3 mal mehr Schritte als ich zählen kann und 5 mal mehr als ich programmieren könnte.

    Mal ganz davon abgesehen, dass man einen eigenen Browser nicht in AutoIt schreiben würde. Das macht die Sache wahrscheinlich nur unnötig kompliziert und schrenkt dich in deinen Möglichkeiten ein.

  • Von Lynx hatte ich, ehrlich gesagt, noch nie etwas gehört. Die Idee das ganze erstmal Textbasiert laufen zu lassen, spricht mich allerdings an. Vielleicht sollte ich so etwas wirklich mal in Angriff nehmen ! Habe noch keine Erfahrung im bereich TCP daher hätte es auch einen großen Lerneffekt für mich - insbesondere das macht den Reiz aus.

  • danke an SEuBO für das kleine "Tut"
    zu euren beiträgen:
    der soll ja auf IE basieren aber jetzt kommt doch mal zu meiner frage

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • ihr sollt es doch gar nicht umschreiben ihr sollt nur eine lösung finden

    aber eben diese Lösung ERFORDERT ein umschreiben des Codes.

    Hier ist eine Version mit dynamischer Anzahl von Tabs / IE elementen. Is nichts tolles, nur ne 10 minuten geschichte, aber es soll ja auch nur als Beispiel dienen

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    #include <Array.au3>
    _IEErrorHandlerRegister ()

    [/autoit] [autoit][/autoit] [autoit]

    Dim $oIE[1]
    $oIE[0] = _IECreateEmbedded()
    Dim $Tab[1]

    [/autoit] [autoit][/autoit] [autoit]

    $gui = GUICreate("blabla",800,600)
    $NewTab = GUICtrlCreateButton("Neuer Tab",20,20,80,25)
    $input = GUICtrlCreateInput("",120,20,400,25)
    $TabParent = GUICtrlCreateTab(20,60,760,520)
    $Tab[0] = GUICtrlCreateTabItem("Google")
    GUICtrlCreateObj($oIE[0],40,100,700,460)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _IENavigate($oIE[0],"http://www.google.de")
    GUICtrlSetData($input,_IEPropertyGet($oIE[0],"locationurl"))

    [/autoit] [autoit][/autoit] [autoit]

    While GUIGetMsg()<>-3 * Sleep(10)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    Exit
    Case $NewTab
    $iIE = UBound($oIE)
    _ArrayAdd($Tab,GUICtrlCreateTabItem("Tab"&$iIE))
    _ArrayAdd($oIE,_IECreateEmbedded())
    GUICtrlCreateObj($oIE[$iIE],40,100,700,460)
    _IENavigate($oIE[$iIE],"http://www.google.de")
    Case $input
    $selected = GUICtrlRead($TabParent)
    _IENavigate($oIE[$selected],GUICtrlRead($input))
    WinSetTitle($gui,"",_IEPropertyGet($oIE[$selected],"locationname"))

    [/autoit] [autoit][/autoit] [autoit]

    Case $TabParent
    $selected = GUICtrlRead($TabParent)
    WinSetTitle($gui,"",_IEPropertyGet($oIE[$selected],"locationname"))
    GUICtrlSetData($input,_IEPropertyGet($oIE[$selected],"locationurl"))
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • ja hab meinen ein bisschen umgeschrieben der hat jetzt auch ne dynamische anzahl und die funktionen funken auch immer nur in dem tab der gerade benutzt wird
    also die frage wäre geklärt

    ich brauche jetzt hilfe bei der funktion tabs zu löschen

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • so kannst du die tabs zumachen

    Spoiler anzeigen

    $Tab = GUICtrlCreateTab (0, 41, @DesktopWidth -15, 25)
    GUICtrlSetResizing ( -1, 802)
    $mnu = GUICtrlCreateContextMenu($Tab)
    $mnu_new = GUICtrlCreateMenuItem("neuer Tab",$mnu)
    $mnu_del = GUICtrlCreateMenuItem("Tab schließen",$mnu)
    $mnu_quell = GUICtrlCreateMenuItem("Quellcode",$mnu)


    Case $mnu_new
    _NewTab(GUICtrlRead ($Input1))
    Case $mnu_del
    _close()


    Func _Close()
    Local $Zahl = _GUICtrlTab_GetCurSel($Tab)
    If $Zahl > -1 Then
    _GUICtrlTab_DeleteItem($Tab, $Zahl)
    GUICtrlDelete ($Obj[$Zahl +1])
    _GUICtrlTab_SetCurSel($Tab, _GUICtrlTab_GetItemCount($Tab) -1)
    EndIf
    EndFunc

    so mach ich das bei meiner neuen Browser

  • ...außerdem ist es möglich seine eigene Rendering Engine zu schreiben. Der Code wird über InetGetSource() eingelesen und dann aufgesplittet (dazu gibt es sicher eine HTML-UDF im englischem Forum, im schmlimmsten Fall nimmt man eine XML-UDF). Dann wird die HP in eine GUI "verwandelt". Fertig.

  • :!: also es klappt eigentlich

    nur es bugt oft wenn man zwischen den tabs wechselt

    wie heißt der befehl die inteadresse zu ermitteln vom aktuellen tab und wie aktualisiert man die seite also der befehl dafür

    ich muss off bb

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D