使用一个循环队列缓存剪切板中的文本
#SingleInstance, Force
#Persistent
SendMode Input
SetWorkingDir, %A_ScriptDir%
global Array := [] ;声明一个数组
global rear := 1 ;队尾
global front := 1 ;队头
global maxS1ze := 100 ;队列的最大长度为
OnClipboardChange("ClipboardChange")
ClipboardChange(Type) {
if (Type == 1) {
Array.InsertAt(rear, Clipboard)
rear := mod((rear + 1), maxS1ze) ;入队
}
}
!1::
MsgBox, % Array[front]
Clipboard = % Array[front]
front := mod((front + 1), maxS1ze) ; 出队
return
; !2::
; For index, value in array
; MsgBox % "Item " index " is '" value "'"
; return
; !3::
; MsgBox % "rear:" rear "," "front:" front
; return
哈哈学习了