Inspiriert von dem alten Autohotkey (Basic) Projekt der 'CT namens "ac'tivAid", habe ich mir meine eigene Verwaltung der Zwischenablagen erstellt.
Features:
- nutzt den Nummernblock (0-9) zur Verwaltung der Zwischenablagen
- gespeichert wird Text inkl. Formatierung
- die Inhalte stehen auch nach Neustart wieder zur Verfügung
- kopiert man aus Windows Explorer (oder Total Commander) werden Dateien und Ordner als Text kopiert
- Win+Numpad0-9 zum Kopieren
- STRG+Numpad0-9 zum Einfügen
- STRG+ALT+NumPad0-9 zum Einfügen in Zwischenablage (brauche ich manchmal für SAP)
- STRG+WIN+Numpad0-9 zum Einfügen von Plain Text
Code: Select all
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#SingleInstance, force
EnvGet, username, Username
; ---------------------Settings-----------------------------------
hk_copy := "#" ; Modulartaste kopieren # = Windowstaste kopieren auf den Nummernblock
hk_paste1 := "^" ; Modulartaste einfügen ^ = STRG einfügen vom Nummernblock
hk_paste2 := "^!" ; Modulartasten einfügen ^! = STRG Alt einfügen in Zwischenablage
hk_paste3 := "^#" ; Modulartasten einfügen ^# = STRG Win einfügen Plain Text
hk_num := "Numpad" ;Numpad oder Zahlentasten
hk_zz := 10 ; Anzahl (max 10)
; --------------------------------------------------------
Menu, Tray, Add, alle Zwischenablagen löschen, clear
; --------------------------------------------------------
Loop, % hk_zz ; kopieren
Hotkey, % hk_copy hk_num A_Index - 1, handler0, On T1
Loop, % hk_zz ; einfügen
Hotkey, % hk_paste1 hk_num A_Index - 1, handler1, On T1
Loop, % hk_zz ; einfügen nur in Zwischenablage
Hotkey, % hk_paste2 hk_num A_Index - 1, handler2, On T1
Loop, % hk_zz ; einfügen nur in Zwischenablage
Hotkey, % hk_paste3 hk_num A_Index - 1, handler3, On T1
gosub, load
return
; --------------------------------------------------------
handler0: ; kopieren
oldclip := ClipboardAll
Clipboard := ""
n := StringRight(A_ThisHotkey, 1) ; nur der Zähler
Send ^c
ClipWait, 1
; wenn aus Windows Explorer kopiert wird, werden die Dateien als Text gespeichert
if WinActive("ahk_class CabinetWClass") or WinActive("ahk_class TTOTAL_CMD")
{
Clipboard = %Clipboard%
Clip%n% := Clipboard
}
else
Clip%n% := ClipboardAll
FileDelete, % "clip" n
FileAppend, % ClipboardAll, % "clip" n
Sleep, 500
Clipboard := oldclip
return
; --------------------------------------------------------
handler1: ; einfügen
oldclip := ClipboardAll
n := StringRight(A_ThisHotkey, 1) ; nur der Zähler
Clipboard := ""
Clipboard := Clip%n%
ClipWait, 1
if Clipboard
Send ^v
Sleep, 500
Clipboard := oldclip
return
; --------------------------------------------------------
handler2: ; einfügen nur in Zwischenablage
n := StringRight(A_ThisHotkey, 1) ; nur der Zähler
Clipboard := ""
Clipboard := Clip%n%
ClipWait, 1
return
; --------------------------------------------------------
handler3: ; einfügen Plain Text
oldclip := ClipboardAll
n := StringRight(A_ThisHotkey, 1) ; nur der Zähler
Clipboard := ""
Clipboard := Clip%n%
Clipboard = %Clipboard%
ClipWait, 1
if Clipboard
Send ^v
Sleep, 500
Clipboard := oldclip
return
; --------------------------------------------------------
load: ; alte Clipboards laden beim Start
Loop, % hk_zz
{
IfNotExist, % "clip" A_Index
continue
FileRead, tmp, % "*c clip" A_Index
Clip%A_Index% := tmp
}
return
; --------------------------------------------------------
clear: ; alle Clipboards löschen
Loop, % hk_zz + 100
{
IfNotExist, % "clip" A_Index
continue
FileDelete, % "clip" A_Index
Clip%A_Index% := ""
}
Clipboard := ""
return
; --------------------------------------------------------
StringRight(i,z) ; Funktion Rechts
{
StringRight, t, i, % z
; FileAppend, % t " - " i "`t" A_Now "``t" A_ThisLabel "`n", log.txt
return t
}
/*