Из этой темы. Выделение ЛКМ+С - копировать в буфер, вырезать - ЛКМ+X, вставить - ЛКМ+V.
ЛКМ+ПКМ - показать буфер. Если отпустить ЛКМ, удерживая ПКМ - буфер очистится.
; ============================================ MultiClip
oBuff:=[], OO := "`n 0 0 `n _`n `n"
~vk1 & vk43:: ; LButton & C
~vk1 & vk58:: ; LButton & X
Clipboard =
SendInput {Click up}
SendInput % (A_ThisHotkey = "~vk1 & vk43") ? "^{Ins}" : "+{Del}"
ClipWait, 1
Sleep 100
if !ErrorLevel {
oBuff.Insert(Clipboard)
tooltip % oBuff.MaxIndex()
sleep 300
tooltip
}
Return
~vk1 & vk56:: ; LButton & V
if oBuff.MaxIndex() {
Clipboard := oBuff.Remove(1)
SendInput {Click up}
Sleep 100
SendInput +{Ins}
tooltip % oBuff.MaxIndex()
} else tooltip % OO
sleep 500
tooltip
Return
~vk1 & vk2:: ; LButton & RButton
r := ""
for k,v in oBuff
r .= k ": " v "`n"
tooltip % r ? r : OO
KeyWait, vk1
KeyWait, vk2, T0.1
if ErrorLevel
oBuff.Remove(1, oBuff.MaxIndex())
tooltip
Return