Quick PDF-Viewer

  • Hi Leuts,

    ich möchte eine Art "Quick PDF-Viewer" basteln, dass, wenn man etwas sucht, nicht jedes PDF aufmachen muss, sondern einfach nur kurz durchklicken und bei Fund direkt aus dem GUI raus öffnen.

    Soweit so gut, mit Text-Dateien ist das Ding kein Problem, allerdings krieg ichs nicht hin, dass er beim Klick auf "Weiter" oder "Zurück" das jeweilige File auch im Control anzeigt (gefunden hier im Forum, einmalige Anzeige funktioniert).

    Hier mal mein kläglicher Versuch, evtl weiss jemand weiter :)

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include <file.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("PDF Viewer", 631, 469, 192, 114)

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

    Global $oPDF = ObjCreate("AcroPDF.PDF.1")
    Global $GUI_ActiveX = GUICtrlCreateObj($oPDF, 16, 72, 593, 377)
    GUICtrlSetStyle($GUI_ActiveX, $WS_VISIBLE)
    GUICtrlSetResizing($GUI_ActiveX, $GUI_DOCKAUTO)

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

    $path = GUICtrlCreateInput("", 16, 16, 593, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    $back = GUICtrlCreateButton("<-", 16, 40, 75, 25, $WS_GROUP)
    $open = GUICtrlCreateButton("Öffnen", 96, 40, 75, 25, $WS_GROUP)
    $fwd = GUICtrlCreateButton("->", 176, 40, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    Global $dir = @ScriptDir
    Global $files = _FileListToArray($dir,"*.pdf")
    Global $cnt = UBound($files)
    Global $infile
    Global $i = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $back
    file("back")
    Case $fwd
    file("next")
    Case $open
    file("open")
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    func file($opt)
    if $opt = "open" Then ShellExecute(GUICtrlRead($path))
    if $opt = "next" Then $i += 1
    if $opt = "back" Then $i -= 1

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

    if $i >= $files[0] +1 Then $i = 1
    if $i <= 0 Then $i = $files[0]
    ;~ _ArrayDisplay($files)
    ;~ ConsoleWrite($i & @lf)
    GUICtrlSetData($path, $dir & "\" & $files[$i])
    $oPDF.src = $files[$i]
    EndFunc

    [/autoit]

    Danke & Gruß
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

    Einmal editiert, zuletzt von x0r (25. März 2013 um 08:39)

  • Ändere bitte die Zeile 51 in

    $oPDF.src = $dir & "\" &$files[$i]

    Dann sollte es funktionieren...

    Oder den Wert aus Zeile 50 mit GUICTRLRead an $oPDF.src übergeben.

    Einmal editiert, zuletzt von qwert23 (22. März 2013 um 13:43)