Thumbshot für Bookmarks

    • Offizieller Beitrag

    Hi,
    das ist mein letztes "Verbrechen" in diesem Jahr :D
    Es lassen sich in Vorschaubildern die Bookmarks anschauen. Es kann aber durchaus sein, dass noch keine Thumbshots für die entsprechende Seite erstellt wurden. Dann geht zumindest der Aufruf an thumbshots.de und bei einem späteren Aufruf liegt es dann (wahrscheinlich) vor.
    Es sind 3 Bilder übereinander, das aktuelle in der Mitte, drüber das vorige, drunter das nächste. Viel Spaß damit.
    Und Dank an https://autoit.de/www.thumbshots.de für den Service.

    Spoiler anzeigen
    [autoit]

    #include <StructureConstants.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>
    Opt('MustDeclareVars', 1)

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

    ;#################### HIER DEN PFAD ZU EURER BOOKMARK-DATEI EINTRAGEN !!! #####################################
    Local $bookmarks = FileRead(@UserProfileDir & '\Anwendungsdaten\BROWSER\default\PROFIL\bookmarks.html') ;#
    ;#################################################################################################################

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

    If $bookmarks = -1 Then Exit MsgBox(0, 'FEHLER', 'Es wurde keine Bookmark-Datei gelesen!')
    Local $patternLink = '(?:(?:HREF|href)=")(https?://[\w\d\-/:?!=.,;(){}&#%~]*)(?>")'
    Local $gui, $GUIThumb_1, $GUIThumb_2, $GUIThumb_3
    Global $aBookmarks = StringRegExp($bookmarks, $patternLink, 3)
    Global $ListView, $hListView, $oIE_1, $oIE_2, $oIE_3, $slider, $msg

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

    $oIE_1 = _IECreateEmbedded()
    $oIE_2 = _IECreateEmbedded()
    $oIE_3 = _IECreateEmbedded()
    $gui = GUICreate('Bookmark ThumbShot', 600, 398, -1, -1, BitOR($WS_OVERLAPPEDWINDOW,$WS_VISIBLE,$WS_CLIPSIBLINGS,$WS_CLIPCHILDREN))
    $GUIThumb_1 = GUICtrlCreateObj($oIE_1, 10, 10, 166, 126)
    $GUIThumb_2 = GUICtrlCreateObj($oIE_2, 10, 136, 166, 126)
    $GUIThumb_3 = GUICtrlCreateObj($oIE_3, 10, 262, 166, 126)
    _IENavigate($oIE_1, 'about:blank')
    _IENavigate($oIE_2, 'about:blank')
    _IENavigate($oIE_3, 'about:blank')
    $slider = GUICtrlCreateSlider(186, 10, 20, 378, BitOR($TBS_VERT,$TBS_NOTICKS))
    GUICtrlSetBkColor(-1, 0x0000FF)
    GUICtrlSetLimit(-1, UBound($aBookmarks)-1)
    $ListView = GUICtrlCreateListView('Meine Bookmarks [' & UBound($aBookmarks) & ']', 216, 10, 374, 378, -1, BitOR($LVS_EX_FULLROWSELECT,$LVS_EX_GRIDLINES))
    $hListView = GUICtrlGetHandle($ListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 0 To UBound($aBookmarks) -1
    GUICtrlCreateListViewItem($aBookmarks[$i], $ListView)
    Next
    _GUICtrlListView_SetItemSelected($hListView, 0)
    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    _setThumbs(0)

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

    Do
    $msg = GUIGetMsg()
    Switch $msg
    Case $slider
    _sliderMoved()
    EndSwitch
    Until $msg = $GUI_EVENT_CLOSE
    Exit

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

    Func _sliderMoved()
    Local $index = GUICtrlRead($slider)
    _GUICtrlListView_EnsureVisible($hListView, $index)
    _GUICtrlListView_SetItemSelected($hListView, $index)
    _setThumbs($index)
    EndFunc

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

    Func _setThumbs($INDEX)
    Local $blank = '<html><head><title></title></head><body></body></html>'
    Select
    Case $INDEX = 0
    _IEBodyWriteHTML($oIE_1, $blank)
    _IEBodyWriteHTML($oIE_2, _sThumbShot($aBookmarks[$INDEX]))
    If UBound($aBookmarks) > 1 Then
    _IEBodyWriteHTML($oIE_3, _sThumbShot($aBookmarks[$INDEX+1]))
    Else
    _IEBodyWriteHTML($oIE_3, $blank)
    EndIf
    Case $INDEX = UBound($aBookmarks) -1
    If UBound($aBookmarks) > 1 Then
    _IEBodyWriteHTML($oIE_1, _sThumbShot($aBookmarks[$INDEX-1]))
    Else
    _IEBodyWriteHTML($oIE_1, $blank)
    EndIf
    _IEBodyWriteHTML($oIE_2, _sThumbShot($aBookmarks[$INDEX]))
    _IEBodyWriteHTML($oIE_3, $blank)
    Case Else
    If UBound($aBookmarks) > 1 Then
    _IEBodyWriteHTML($oIE_1, _sThumbShot($aBookmarks[$INDEX-1]))
    Else
    _IEBodyWriteHTML($oIE_1, $blank)
    EndIf
    _IEBodyWriteHTML($oIE_2, _sThumbShot($aBookmarks[$INDEX]))
    If UBound($aBookmarks) > 1 Then
    _IEBodyWriteHTML($oIE_3, _sThumbShot($aBookmarks[$INDEX+1]))
    Else
    _IEBodyWriteHTML($oIE_3, $blank)
    EndIf
    EndSelect
    EndFunc

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

    Func _sThumbShot($LINK)
    Local $sTitle = "'" & $LINK & "'"
    Return '<img src="http://www.thumbshots.de/cgi-bin/show.cgi?url=' & $LINK & _
    '" border="0" onload="if (this.width>50) this.border=1; this.alt=' & $sTitle & ';">'
    EndFunc

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

    Func _LeftClick($INDEX)
    GUICtrlSetData($slider, $INDEX)
    _sliderMoved()
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_CLICK
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _LeftClick(DllStructGetData($tInfo, "Index"))
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]

    So sieht es aus:
    http://www.imgbox.de/?img=p6008t219.jpg