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
#include <GUIConstants.au3>
#include <GuiListBox.au3>
#include <Misc.au3>
#include <File.au3>
$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
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