#Requires AutoHotkey v2.0
批量剪切板.启动()
$^v:: {
批量剪切板.粘贴()
KeyWait 'v'
}
class 批量剪切板 {
__New(t) {
if t > 0 {
this.clip := ClipboardAll()
if t == 1 {
if StrLen(A_Clipboard) > 400 {
this.shortMsg := RegExReplace(Format('{1}`n{2}`n{3}', RTrim(SubStr(A_Clipboard, 1, 200), '`n'), ' *** 隐藏 ' StrLen(A_Clipboard) - 400 ' 字符 ***', LTrim(SubStr(A_Clipboard, -200)), '`n'), 'm)([^`n]{100})', '$1`n')
} else {
this.shortMsg := RegExReplace(A_Clipboard, 'm)([^`n]{100})', '$1`n')
}
} else if t == 2 {
this.shortMsg := ' *** 非文本内容 *** '
}
}
}
static _Arr := []
static isOprt := false
static 复制 := (t) => (
批量剪切板._Arr.Push(批量剪切板(t)),
批量剪切板.暂停(),
Sleep(20),
A_Clipboard := 批量剪切板._Arr[1].clip,
批量剪切板.启动(),
批量剪切板.信息('已复制')
)
static 粘贴() {
if 批量剪切板.isOprt++ == false {
if 批量剪切板._Arr.Length > 0 {
批量剪切板.暂停()
Sleep 20
A_Clipboard := 批量剪切板._Arr[1].clip
Send '^v'
Sleep 100
批量剪切板._Arr.RemoveAt(1)
if 批量剪切板._Arr.Length > 0 {
A_Clipboard := 批量剪切板._Arr[1].clip
}
A_Clipboard := ''
批量剪切板.启动()
批量剪切板.信息('已粘贴')
} else {
批量剪切板.信息('剪切板为空')
}
批量剪切板.isOprt := false
}
}
static 信息(信息Str, 超时 := 2000) {
if 批量剪切板._Arr.Length > 0 {
ToolTip Format('{1}`n[{2}]`n{3}', 信息Str, 批量剪切板._Arr.Length, 批量剪切板._Arr[1].shortMsg)
} else {
ToolTip Format('{1}`n[0]', 信息Str, 批量剪切板._Arr.Length)
}
SetTimer () => ToolTip(''), -超时
}
static 启动() {
OnClipboardChange(批量剪切板.复制)
}
static 暂停() {
OnClipboardChange(批量剪切板.复制, 0)
}
}