Shell.Explorer - Url

  • Hallo leute,

    ich bekomme es einfach nicht hin. Ich möchte, wenn ich innerhalb einer Webseite rumschaue bzw. rumklicke, dass er mir auch jedes mal den "URL"-Link von der Aktuellen Position, in eine Input schreibt. Es funktioniert zwar, aber wird erst dann in die "Input" geschrieben wenn ich darauf klicke. Ich habe mal kurz ein Beispiel geschrieben um es sich besser vorstellen zu können.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

    $oIE = ObjCreate("Shell.Explorer.2")

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

    GUICreate("Embedded Web control Test", 640, 500)
    $GUIActiveX = GUICtrlCreateObj ($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Zurück", 10, 10, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Vor", 120, 10, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 10, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stoppen", 330, 10, 100, 30)
    $url = GUICtrlCreateInput("", 10, 450, 500, 20)

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

    GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")

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

    GUISetState()

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

    $oIE.navigate("http://www.autoit.de")

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

    While 1
    $msg = GUIGetMsg()

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

    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $GUI_Button_Home
    $oIE.navigate("http://www.autoit.de")
    Case $GUI_Button_Back
    $oIE.GoBack
    Case $GUI_Button_Forward
    $oIE.GoForward
    Case $GUI_Button_Stop
    $oIE.Stop
    EndSwitch
    WEnd

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

    Func _WM_COMMAND($GUIActiveX)
    $url_link = _IEPropertyGet ($oIE, "locationurl")
    GUICtrlSetData($url, $url_link)
    EndFunc

    [/autoit]

    Ich hoffe es kann mir einer helfen. Danke.

    Einmal editiert, zuletzt von MehmeX (17. Mai 2009 um 16:16)

  • Hi MehmeX,

    das sollte dir weiterhelfen ;) :

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    $oIE = ObjCreate("Shell.Explorer.2")

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

    GUICreate("Embedded Web control Test", 640, 500)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Zurück", 10, 10, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Vor", 120, 10, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 10, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stoppen", 330, 10, 100, 30)
    $url = GUICtrlCreateInput("", 10, 450, 500, 20)

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

    GUISetState()

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

    $oIE.navigate("http://www.autoit.de")

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

    $Init = TimerInit()

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

    While 1
    $msg = GUIGetMsg()

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

    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $GUI_Button_Home
    $oIE.navigate("http://www.autoit.de")
    Case $GUI_Button_Back
    $oIE.GoBack
    Case $GUI_Button_Forward
    $oIE.GoForward
    Case $GUI_Button_Stop
    $oIE.Stop
    EndSwitch
    If TimerDiff($Init) > 100 Then
    GUICtrlSetData($url, $oIE.LocationURL)
    $Init = TimerInit()
    EndIf
    WEnd

    [/autoit]
  • Ich hätte da noch einen Einwand. Und zwar flackert es im Input bei längeren URL's. Gibt es da vielleicht eine andere Methode?

  • Ja. So:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    $oIE = ObjCreate("Shell.Explorer.2")

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

    GUICreate("Embedded Web control Test", 640, 500)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Zurück", 10, 10, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Vor", 120, 10, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 10, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stoppen", 330, 10, 100, 30)
    $url = GUICtrlCreateInput("", 10, 450, 500, 20)

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

    GUISetState()

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

    $oIE.navigate("http://www.autoit.de")

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

    $Init = TimerInit()

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

    While 1
    $msg = GUIGetMsg()

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

    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $GUI_Button_Home
    $oIE.navigate("http://www.autoit.de")
    Case $GUI_Button_Back
    $oIE.GoBack
    Case $GUI_Button_Forward
    $oIE.GoForward
    Case $GUI_Button_Stop
    $oIE.Stop
    EndSwitch
    If TimerDiff($Init) > 100 Then
    $Location = $oIE.LocationURL
    If GUICtrlRead($url) <> $Location Then
    GUICtrlSetData($url, $Location)
    EndIf
    $Init = TimerInit()
    EndIf
    WEnd

    [/autoit]
  • Ich habe noch einen Fehler gefunden und zwar kann ich ja nichts mehr in das Inputfeld reinschreiben, denn er schreibt städig die URL-Adresse selber rein.

    Edit: Hätte da auch noch ne 2. Frage nebenbei: Wenn ich den Pfad als C:\ habe, wie kann ich da die Ansicht ändern (Kachel, Symbol, Liste etc.)?

    Danke.

    Einmal editiert, zuletzt von MehmeX (17. Mai 2009 um 22:17)

  • Hi MehmeX,

    Zu deiner 1. Frage hier:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    Local $old

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

    $oIE = ObjCreate("Shell.Explorer.2")

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

    GUICreate("Embedded Web control Test", 640, 500)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Zurück", 10, 10, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Vor", 120, 10, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 10, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stoppen", 330, 10, 100, 30)
    $url = GUICtrlCreateInput("", 10, 450, 500, 20)

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

    GUISetState()

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

    $oIE.navigate("http://www.autoit.de")

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

    $Init = TimerInit()

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

    While 1
    $msg = GUIGetMsg()

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

    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $GUI_Button_Home
    $oIE.navigate("http://www.autoit.de")
    Case $GUI_Button_Back
    $oIE.GoBack
    Case $GUI_Button_Forward
    $oIE.GoForward
    Case $GUI_Button_Stop
    $oIE.Stop
    Case $url
    $oIE.navigate(GUICtrlRead($url))
    EndSwitch
    If TimerDiff($Init) > 100 Then
    $Location = $oIE.LocationURL
    If $Location <> $old Then
    GUICtrlSetData($url, $Location)
    $old = $Location
    EndIf
    $Init = TimerInit()
    EndIf
    WEnd

    [/autoit]

    Die 2. kann ich dir jetzt nicht beantworten :D

    Edit: Vielleicht ist hier für dich was drin:

    Spoiler anzeigen