• Nachdem ich - wenn ich Texte schreibe oder Programmiere oder sonst irgendwas am Computer mache - oft STRG + C und STRG + V verwende und dauernd andere Sachen kopiere aber dann wieder auf die alten zurückspringen will dachte ich mir ich mach eine Art aufzeichnungsprogramm des Clips. Wenn ich dann STRG + C drück kann ich auswählen welchen Clip ich in meiner Zwischenablage haben will (der aktuelle Clip wird selbstverständlich als erster markiert!).

    Hier der Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListBox.au3>
    #include <Misc.au3>
    #include <File.au3>

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

    $ini = @MyDocumentsDir & "\_ClipSelector.ini"
    While 1
    If _IsPressed("11") And _IsPressed("12") And _IsPressed("43") Then
    Send("^c")
    ElseIf _IsPressed("11") And _IsPressed("43") Then
    _ClipSelector()
    EndIf
    WEnd

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

    Func _ClipSelector()
    $count = IniReadSection($ini, "clips")
    If IsArray($count) Then
    If IniRead($ini, "clips", $count[0][0], "") <> ClipGet() Then IniWrite($ini, "clips", $count[0][0]+1, StringRegExpReplace(ClipGet(), @CRLF, "<br>"))
    Else
    If IniRead($ini, "clips", 1, "") <> ClipGet() Then IniWrite($ini, "clips", 1, StringRegExpReplace(ClipGet(), @CRLF, "<br>"))
    EndIf
    GUICreate("ClipSelector", 340, 190, @DesktopWidth-340, 0, $WS_POPUPWINDOW)
    GUISetFont(11, 400, 1, "Century Gothic")
    $list = GUICtrlCreateList("", -3, -3, 346, 220, $LBS_EXTENDEDSEL)
    GUISetState()

    _GUICtrlListBox_BeginUpdate($list)
    $count = IniReadSection($ini, "clips")
    For $i = $count[0][0] To 1 Step -1
    _GUICtrlListBox_AddString($list, IniRead($ini, "clips", $i, ""))
    Next
    _GUICtrlListBox_EndUpdate($list)
    _GUICtrlListBox_SetSel($list, 0)

    WinSetOnTop("ClipSelector", "", 1)
    WinActivate("ClipSelector")

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    GUIDelete()
    ExitLoop
    ElseIf _IsPressed("0D") And WinGetTitle("") = "ClipSelector" Then
    $sel = _GUICtrlListBox_GetSelItemsText($list)
    ClipPut(StringRegExpReplace($sel[1], "<br>", @CRLF))
    GUIDelete()
    ExitLoop
    EndIf
    WEnd
    EndFunc

    [/autoit]
  • Ich glaub ich bin für dein Tool zu doof.

    Wenn ich verschiedene Texte markeire und dann jedesmal CTRL+C drücke, bekomme ich nur den ersten CTRL+C eintrag in die Liste.
    Müsste da nicht jedesmal ein neuer Eintrag erstellt werden?

    Gruss Roger