Zwischenablage speichern Tool

  • Irgendwann war mal so ein Thema... Habs mal umgesetzt ^^
    Hat jemand noch Vorschläge zur Verbesserung? :)

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon

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

    #include <GUIConstants.au3>
    #include <GUIListView.au3>

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

    HotKeySet("{PGUP}", "_show")
    HotKeySet("{PGDN}", "_hide")
    HotKeySet("^!{ESC}", "_terminate")
    MsgBox(0, "Fenster anzeigen", "Pg Up zeigt das Fenster" & @CRLF & "Pg Down lässt es wieder verschwinden")
    $Gui = GUICreate("Zwischenablage speichern Tool", 341, 271)
    $Version = GUICtrlCreateLabel("Version 1.1", 275, 240, 57, 17)
    $tree = _GUICtrlListView_Create($Gui, "Zwischenablage", 10, 16, 220, 240)
    $col = _GUICtrlListView_SetColumn($tree, 1, "Zwischenablage", 220)
    _GUICtrlListView_SetColumnWidth($tree, $col, 220)
    $Kopieren = GUICtrlCreateButton("Kopieren", 240, 16, 81, 33, 0)
    $Loeschen = GUICtrlCreateButton("Löschen", 240, 72, 81, 33, 0)
    $Alleloeschen = GUICtrlCreateButton("Alles löschen", 240, 128, 81, 33, 0)
    GUISetBkColor(0x075478)
    GUISetState(@SW_HIDE)

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

    $max = 1000

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

    $file = @ScriptDir & "\zwischenablage.txt"
    If FileExists($file) Then FileDelete($file)
    Global $additem[$max + 1], $tree, $selecteditem, $item
    For $i = 1 To $max
    $additem[$i] = ""
    Next

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

    $Zwischenablage1 = ""
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Kopieren
    Local $item = _GuiCtrlListView_GetFocusedItem($tree)
    ClipPut(_GUICtrlListView_GetItemTextString($tree, $item))
    Case $Loeschen
    $selecteditem = _GUICtrlListView_GetItemTextString($tree, $item)
    $fileread = FileRead($file)
    $filewrite = StringReplace($fileread, $selecteditem, "***DELETED***")
    FileDelete($file)
    FileWrite($file, $filewrite)
    _GUICtrlListView_DeleteItemsSelected($tree)
    Case $Alleloeschen
    $msgbox = MsgBox(4, "Alles löschen", "Sind sie sicher, dass sie alles löschen wollen?")
    If $msgbox = 6 Then
    _GUICtrlListView_DeleteAllItems($tree)
    FileDelete($file)
    EndIf
    EndSwitch
    $Zwischenablage2 = ClipGet()
    If $Zwischenablage2 <> $Zwischenablage1 Then _zwischenablageadd()
    WEnd

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

    Func _zwischenablageadd()
    For $i = 1 To $max
    If $additem[$i] = $Zwischenablage2 Then Return
    Next

    For $i = 1 To $max
    If $additem[$i] = "" Then
    FileWrite($file, @HOUR & ":" & @MIN & ":" & @SEC & " " & $Zwischenablage2 & @CRLF)
    $additem[$i] = $Zwischenablage2
    _GUICtrlListView_AddItem($tree, $Zwischenablage2)
    $Zwischenablage1 = $Zwischenablage2
    ExitLoop
    EndIf
    Next
    EndFunc ;==>_zwischenablageadd

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

    Func _GuiCtrlListView_GetFocusedItem($hWnd)
    For $i = 0 To _GUICtrlListView_GetItemCount($hWnd) - 1
    If _GUICtrlListView_GetItemState($hWnd, $i, $LVIS_FOCUSED) Then Return $i
    Next
    EndFunc ;==>_GuiCtrlListView_GetFocusedItem

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

    Func _show()
    GUISetState(@SW_SHOW)
    EndFunc ;==>_show

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

    Func _hide()
    GUISetState(@SW_HIDE)
    EndFunc ;==>_hide

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

    Func _terminate()
    Exit
    EndFunc ;==>_terminate

    [/autoit]

    //Edit//
    BIsschen was verändert - keine Lust weiterzumachen ^^
    Hier der Code...

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon

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

    #include <GUIConstants.au3>
    #include <GUIListView.au3>

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

    HotKeySet("^!{ESC}", "_terminate")

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

    ;~ Input Box

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

    $inputhide = InputBox("Fenster verstecken", "Mit welcher Taste willst du das Fenster verstecken?")
    If @error Then $hinputhide = HotKeySet("{PGDN}", "_hide")
    $inputshow = InputBox("Fenster zeigen", "Mit welcher Taste willst du das Fenster zeigen?")
    If @error Then $hinputshow = HotKeySet("{PGUP}", "_show")
    $hinputshow = HotKeySet("{" & $inputshow & "}", "_show")
    $hinputhide = HotKeySet("{" & $inputhide & "}", "_hide")
    MsgBox(0, "Fenster anzeigen und verstecken", $inputshow &" zeigt das Fenster" & @CRLF & $inputhide &" lässt es wieder verschwinden")
    MsgBox(0, "Fenster versteckt!", "Am Anfang ist das Fenster versteckt, du kannst es mit " & $inputshow & " zeigen!")

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

    ;~ Ende Input Box

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

    $Gui = GUICreate("Zwischenablage speichern Tool", 341, 271)
    $Version = GUICtrlCreateLabel("Version 1.1", 275, 240, 57, 17)
    $tree = _GUICtrlListView_Create($Gui, "Zwischenablage", 10, 16, 220, 240)
    $col = _GUICtrlListView_SetColumn($tree, 1, "Zwischenablage", 220)
    _GUICtrlListView_SetColumnWidth($tree, $col, 220)
    $Kopieren = GUICtrlCreateButton("Kopieren", 240, 16, 81, 33, 0)
    $Loeschen = GUICtrlCreateButton("Löschen", 240, 72, 81, 33, 0)
    $Alleloeschen = GUICtrlCreateButton("Alles löschen", 240, 128, 81, 33, 0)
    GUISetBkColor(0x075478)
    GUISetState(@SW_HIDE)

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

    $max = 1000

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

    $file = @ScriptDir & "\zwischenablage.txt"
    If FileExists($file) Then FileDelete($file)
    Global $additem[$max + 1], $tree, $selecteditem, $item, $inputhide, $inputshow, $hinputhide, $hinputshow
    For $i = 1 To $max
    $additem[$i] = ""
    Next

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

    $Zwischenablage1 = ""
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Kopieren
    Local $item = _GuiCtrlListView_GetFocusedItem($tree)
    ClipPut(_GUICtrlListView_GetItemTextString($tree, $item))
    Case $Loeschen
    $selecteditem = _GUICtrlListView_GetItemTextString($tree, $item)
    $fileread = FileRead($file)
    $filewrite = StringReplace($fileread, $selecteditem, "***DELETED***")
    FileDelete($file)
    FileWrite($file, $filewrite)
    _GUICtrlListView_DeleteItemsSelected($tree)
    Case $Alleloeschen
    $msgbox = MsgBox(4, "Alles löschen", "Sind sie sicher, dass sie alles löschen wollen?")
    If $msgbox = 6 Then
    _GUICtrlListView_DeleteAllItems($tree)
    FileDelete($file)
    EndIf
    EndSwitch
    $Zwischenablage2 = ClipGet()
    If $Zwischenablage2 <> $Zwischenablage1 Then _zwischenablageadd()
    WEnd

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

    Func _zwischenablageadd()
    For $i = 1 To $max
    If $additem[$i] = $Zwischenablage2 Then Return
    Next

    For $i = 1 To $max
    If $additem[$i] = "" Then
    FileWrite($file, @HOUR & ":" & @MIN & ":" & @SEC & " " & $Zwischenablage2 & @CRLF)
    $additem[$i] = $Zwischenablage2
    _GUICtrlListView_AddItem($tree, $Zwischenablage2)
    $Zwischenablage1 = $Zwischenablage2
    ExitLoop
    EndIf
    Next
    EndFunc ;==>_zwischenablageadd

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

    Func _GuiCtrlListView_GetFocusedItem($hWnd)
    For $i = 0 To _GUICtrlListView_GetItemCount($hWnd) - 1
    If _GUICtrlListView_GetItemState($hWnd, $i, $LVIS_FOCUSED) Then Return $i
    Next
    EndFunc ;==>_GuiCtrlListView_GetFocusedItem

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

    Func _show()
    GUISetState(@SW_SHOW)
    EndFunc ;==>_show

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

    Func _hide()
    GUISetState(@SW_HIDE)
    EndFunc ;==>_hide

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

    Func _terminate()
    Exit
    EndFunc ;==>_terminate

    [/autoit]


    Viel Spass damit! :S

    MfG :D

    Einmal editiert, zuletzt von DeadmanFinal (1. Juli 2008 um 19:11)