Browser erstllen

  • Hallo Autoit-Forum,

    könnte mir jemand ein Script für einen Browser zukommen lassen. Wäre sehr nett. Kann auch nur das Grundgerüst sein sodass ich es noch überarbeiten muss.

    Lg Leon

  • Einen richtigen eigenen Browser wirst du mit AutoIt nich programmieren können. Dazu müsstest du erstmal unter anderem einen HTML PHP und so weiter interpreter programmieren. Browser wie z.B. IE oder FF schicken die eingegebene URL erst zu einem Server, der den String/URL auswertet, dann die Seiten von den anderen Servern runterläd und zum schluss das Ergebnis zurück zum FF bzw. IE schickt.Du kannst dir vorstellen, wie langsam ein AutoIt Browser sein müsste...

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Da zu am besten C oder VB nehmen. Und bevor du anfängst, bist du dir sicher das du an einem so riesiegm Projekt arbeiten willst? ICH hab langa langa langa dran gesessen, und das Ergebnis ist nur der Standard. Außersem ist es mit Autoit nicht möglich ein eigenes Contextmenu einzubinden, weder noch links in anderen Tabs zu öffnen.

    Hier das beste was mit Autoit hinzukriegen ist:

    Spoiler anzeigen

    #include <GUIConstants.au3>
    #include <GuiTab.au3>
    #include <IE.au3>
    #include <GuiStatusBar.au3>
    #include <array.au3>
    #include <Misc.au3>

    HotKeySet("!t", "Test")
    HotKeySet("^t", "OINT")

    Global $Tab[11], $oIE[11], $Obj[11], $flasher[11], $backstack[11][2], $init = 1
    Global $Title = "My Web Browser", $TabPos1 = 5, $TabPos2 = 35, $TabPos3 = 850, $TabPos4 = 650, $Status = 0, $Title2, $Status2 = "", $frskip = 0, $Count = 1, $HomePage

    _IEErrorHandlerRegister()
    $Form = GUICreate($Title, $TabPos3 + 10, $TabPos4 + 30)
    $FileMenu = GUICtrlCreateMenu("File")
    $FileOpenTab = GUICtrlCreateMenu("New Tab", $FileMenu)
    $OpenTab1 = GUICtrlCreateMenuItem("Open Blank Page", $FileOpenTab)
    $OpenTab2 = GUICtrlCreateMenuItem("Open Home Page", $FileOpenTab)
    $ShowSource = GUICtrlCreateMenuItem("Show Page Source", $FileMenu)
    $EditMenu = GUICtrlCreateMenu("Edit")
    $Cut = GUICtrlCreateMenuItem("Cut", $EditMenu)
    $Copy = GUICtrlCreateMenuItem("Copy", $EditMenu)
    $Paste = GUICtrlCreateMenuItem("Paste", $EditMenu)
    $Sep = GUICtrlCreateMenuItem("", $EditMenu)
    $Selectall = GUICtrlCreateMenuItem("Select All", $EditMenu)
    $SettingsMenu = GUICtrlCreateMenu("Settings")
    $ChangeHomePage = GUICtrlCreateMenuItem("Change Home Page", $SettingsMenu)
    $StatusBar = _GUICtrlStatusBar_Create($Form)
    Local $aParts[1] = [500]
    _GUICtrlStatusBar_SetParts($StatusBar, $aParts)
    $Input = GUICtrlCreateInput("", 7, 7, 305, 22)
    $Go = GUICtrlCreateButton("Go", 336, 5, 35, 25)
    $Back = GUICtrlCreateButton("Back", 376, 5, 43, 25)
    $Forward = GUICtrlCreateButton("Forward", 440, 5, 59, 25)
    $Stop = GUICtrlCreateButton("Stop", 520, 5, 43, 25)
    $Refresh = GUICtrlCreateButton("Refresh", 568, 5, 59, 25)
    $Home = GUICtrlCreateButton("Home", 632, 5, 43, 25)
    $Back2 = GUICtrlCreateButton("v", 418, 5, 17, 25)
    $Forward2 = GUICtrlCreateButton("v", 498, 5, 17, 25)
    $Go2 = GUICtrlCreateButton("v", 320, 5, 17, 25)
    $NewTab = GUICtrlCreateButton("New Tab", 680, 5, 65, 25)
    $CloseTab = GUICtrlCreateButton("X", 832, 36, 19, 17)
    $CreateTab = GUICtrlCreateTab($TabPos1, $TabPos2, $TabPos3, $TabPos4 - 50)
    GUICtrlSetState($Back, $GUI_DISABLE)
    GUICtrlSetState($Forward, $GUI_DISABLE)
    GUICtrlSetState($Back2, $GUI_DISABLE)
    GUICtrlSetState($Forward2, $GUI_DISABLE)
    $HomePage = CheckHomePage()
    OpenTab(1, "Home")
    OpenTab(2, "http://www.yahoo.com/")
    OpenTab(3, "http://www.autoitscript.com/forum/index.php")
    $init = 0
    GUISetState()

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Go
    Navigate(GetTab(), GUICtrlRead($Input))
    Case $Back
    HistoryBack(GetTab())
    Case $Forward
    HistoryForward(GetTab())
    Case $Stop
    _IEAction($oIE[GetTab()], "stop")
    Case $CloseTab
    GUICtrlDelete(GUICtrlRead($CreateTab, 1))
    Case $Refresh
    _IEAction($oIE[GetTab()], "refresh")
    Case $Home
    Navigate(GetTab(), "Home")
    Case $OpenTab1
    OpenTab($Count)
    Case $OpenTab2
    OpenTab($Count, "Home")
    Case $Cut
    _IEAction($oIE[GetTab()], "cut")
    Case $Copy
    _IEAction($oIE[GetTab()], "copy")
    Case $Paste
    _IEAction($oIE[GetTab()], "paste")
    Case $Selectall
    _GUICtrlTab_SetCurFocus($CreateTab, GetTab() - 1)
    _IEAction($oIE[GetTab()], "selectall")
    Case $ChangeHomePage
    $hPage = InputBox("Home Page", "Set default home page :", $HomePage, "", 200, 130)
    If Not @error Then
    $HomePage = $hPage
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\My Web Browser", "Home Page", "REG_SZ", $HomePage)
    EndIf
    Case $NewTab
    OpenTab($Count, "Home")
    Case $ShowSource
    If FileExists(@TempDir & "\Source.txt") Then FileDelete(@TempDir & "\Source.txt")
    $Source = _IEDocReadHTML($oIE[GetTab()])
    FileWrite(@TempDir & "\Source.txt", $Source)
    ShellExecute(@TempDir & "\Source.txt")
    EndSwitch
    TestHistory(GetTab())
    CheckTitle()
    CheckStatusBar()
    NavigateCheck()
    Sleep(10)
    WEnd

    Func OINT()
    MouseClick("left")
    $text = Guictrlread($Input)
    ClipPut($text)
    HistoryBack()
    OpenTab($Count)
    Navigate(GetTab(), $text)
    EndFunc

    Func CheckTitle()
    $CurrentTitle = _IEPropertyGet($oIE[GetTab()], "title")
    If $CurrentTitle <> $Title2 Then
    WinSetTitle($Form, "", $CurrentTitle & " - " & $Title)
    $Title2 = $CurrentTitle
    EndIf
    EndFunc ;==>CheckTitle

    Func CheckStatusBar()
    If _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> _IEPropertyGet($oIE[GetTab()], "locationurl") Then
    _GUICtrlStatusBar_SetText($StatusBar, "Opening page " & _IEPropertyGet($oIE[GetTab()], "locationurl") & "...")
    GUICtrlSetState($Stop, $GUI_ENABLE)
    $Status2 = _IEPropertyGet($oIE[GetTab()], "locationurl")
    ElseIf Not _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> "" Then
    _GUICtrlStatusBar_SetText($StatusBar, " ")
    GUICtrlSetState($Stop, $GUI_DISABLE)
    $Status2 = ""
    EndIf
    EndFunc ;==>CheckStatusBar

    Func OpenTab($oNum, $oLink = "")
    If $Count > 10 Then
    MsgBox(0, "Error", "You may only have 10 tabs open at one time")
    Return @error
    EndIf
    $Count += 1
    $backstack[$oNum][0] = 0
    $Tab[$oNum] = GUICtrlCreateTabItem($oNum)
    $oIE[$oNum] = _IECreateEmbedded()
    $Obj[$oNum] = GUICtrlCreateObj($oIE[$oNum], $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80)
    $flasher[$oNum] = GUICtrlCreateEdit("", $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80)
    GUICtrlSetState($flasher[$oNum], $GUI_HIDE)
    Navigate($oNum, $oLink)
    TestHistory($oNum)
    If $init = 0 Then
    _GUICtrlTab_SetCurSel($CreateTab, $Count - 2)
    EndIf
    EndFunc ;==>OpenTab

    Func Navigate($nNum, $nLink)
    If $nLink = "" Then
    $nLink = "about:blank"
    _IENavigate($oIE[$nNum], $nLink, 0)
    GUICtrlSetData($Tab[$nNum], "Blank Page")
    Else
    If $nLink = "Home" Then $nLink = $HomePage
    _IENavigate($oIE[$nNum], $nLink, 0)
    $nLink = StringReplace($nLink, "http://", "")
    $nLink = StringReplace($nLink, "www.", "")
    If StringInStr($nLink, "/") Then
    $nLink = StringSplit($nLink, "/")
    $nLink = $nLink[1]
    EndIf
    If StringLen($nLink) > 25 Then $nLink = StringLeft($nLink, 25) & "..."
    GUICtrlSetData($Tab[$nNum], $nLink)
    EndIf
    EndFunc ;==>Navigate

    Func NavigateCheck()
    If _IsPressed("0D") And ControlGetFocus($Form) = "Edit1" Then
    Navigate(GetTab(), GUICtrlRead($Input))
    GUICtrlSetState($Input, $GUI_FOCUS)
    EndIf
    EndFunc ;==>NavigateCheck

    Func CheckHomePage()
    $hPage = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\My Web Browser", "Home Page")
    If @error Then $hPage = "http://www.google.com"
    Return $hPage
    EndFunc

    Func GetTab()
    Return _GUICtrlTab_GetCurSel($CreateTab) + 1
    EndFunc ;==>GetTab

    Func TestHistory($nNum)
    If IsArray($backstack) = 0 Then Return
    If $backstack[$nNum][0] = 0 Then
    If _IEPropertyGet($oIE[$nNum], "locationurl") <> "" Then
    $backstack[$nNum][0] += 1
    $backstack[$nNum][$backstack[$nNum][0]] = _IEPropertyGet($oIE[$nNum], "locationurl")
    EndIf
    EndIf
    If $backstack[$nNum][$backstack[$nNum][0]] <> _IEPropertyGet($oIE[$nNum], "locationurl") And "" <> _IEPropertyGet($oIE[$nNum], "locationurl") And _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Then
    $backstack[$nNum][0] += 1
    $newurl = _IEPropertyGet($oIE[$nNum], "locationurl")
    If $backstack[$nNum][0] + 1 > UBound($backstack, 2) Then ReDim $backstack[11][$backstack[$nNum][0] + 1]
    If $backstack[$nNum][$backstack[$nNum][0]] <> "" Then
    For $avar = $backstack[$nNum][0] To UBound($backstack, 2) - 1
    $backstack[$nNum][$avar] = ""
    Next
    EndIf
    $backstack[$nNum][$backstack[$nNum][0]] = $newurl
    While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]]
    Sleep(10)
    WEnd
    If $frskip = 0 Then
    FlashRefresh($nNum)
    Else
    $frskip = 0
    EndIf
    EndIf
    NavButtons($nNum)
    EndFunc ;==>TestHistory

    Func NavButtons($nNum)
    If $backstack[$nNum][0] > 1 And GUICtrlGetState($Back) <> 80 Then
    GUICtrlSetState($Back, $GUI_ENABLE)
    GUICtrlSetState($Back2, $GUI_ENABLE)
    EndIf
    If $backstack[$nNum][0] = 1 And GUICtrlGetState($Back) <> 144 Then
    GUICtrlSetState($Back, $GUI_DISABLE)
    GUICtrlSetState($Back2, $GUI_DISABLE)
    EndIf
    If UBound($backstack, 2) - 1 > $backstack[$nNum][0] Then
    If $backstack[$nNum][$backstack[$nNum][0] + 1] = "" Then
    If GUICtrlGetState($Forward) <> 144 Then
    GUICtrlSetState($Forward, $GUI_DISABLE)
    GUICtrlSetState($Forward2, $GUI_DISABLE)
    EndIf
    Else
    If GUICtrlGetState($Forward) <> 80 Then
    GUICtrlSetState($Forward, $GUI_ENABLE)
    GUICtrlSetState($Forward2, $GUI_ENABLE)
    EndIf
    EndIf
    Else
    If GUICtrlGetState($Forward) <> 144 Then
    GUICtrlSetState($Forward, $GUI_DISABLE)
    GUICtrlSetState($Forward2, $GUI_DISABLE)
    EndIf
    EndIf
    EndFunc ;==>NavButtons

    Func HistoryBack($nNum)
    GUICtrlSetState($Back, $GUI_DISABLE)
    GUICtrlSetState($Back2, $GUI_DISABLE)
    $backstack[$nNum][0] -= 1
    Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]])
    While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]]
    Sleep(10)
    WEnd
    $frskip = 1
    TestHistory($nNum)
    FlashRefresh($nNum)
    EndFunc ;==>HistoryBack

    Func HistoryForward($nNum)
    GUICtrlSetState($Forward, $GUI_DISABLE)
    GUICtrlSetState($Forward2, $GUI_DISABLE)
    $backstack[$nNum][0] += 1
    Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]])
    While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]]
    Sleep(10)
    WEnd
    $frskip = 1
    TestHistory($nNum)
    FlashRefresh($nNum)
    EndFunc ;==>HistoryForward

    Func Test()
    _ArrayDisplay($backstack)
    EndFunc ;==>Test

    Func FlashRefresh($nNum)
    GUICtrlSetState($flasher[$nNum], $GUI_SHOW)
    GUICtrlSetState($flasher[$nNum], $GUI_HIDE)
    _GUICtrlTab_DeselectAll($CreateTab, False)
    EndFunc ;==>FlashRefresh

  • wie ändert man in script das man die größe ändern kann des Fensters.

    lg Casi