这是我目前使用的解决方案。基本上,它归结为发送ctrl+c
,等待一定的超时,然后查看是否实际复制了文本。如果不是,我知道没有选择。
没有办法,afaik,避免等待超时,因为 Windows 需要一定的时间来执行copy
操作。我将超时设置为 0.15 秒,所以还不错。
这是我在想要获取剪贴板的内容或检查它是否为空时使用的功能。我总是先调用这个函数:
clipped_text :=
clip_empty := false
ClipSaved =
is_clipped := false
clip_speed := 0.15
Clip() {
global ClipSaved
global clip_empty
global clipped_text
global is_clipped
global clip_speed
if (!is_clipped) {
ClipSaved := ClipboardAll ; Save the entire clipboard to a variable of your choice.
; msgbox % ClipSaved
is_clipped := true
}
clipboard = ; Empty the clipboard
Send ^{c}
ClipWait clip_speed
if (ErrorLevel = 1)
{
clip_empty := false
}
else
{
clip_empty := true
clipped_text := clipboard
}
}
我使用这个函数来实际获取剪贴板的内容或检查它是否为空:
IsTextSelected() {
global ClipSaved
global clip_empty
global clipped_text
if (clip_empty == true) {
return true
}
else {
return false
}
}
要获取剪贴板的内容,我只需查看 clipped_text 变量。
执行“Clip()”操作后,我总是调用以下函数来恢复剪贴板(多次调用时调用该函数一次Clip()
):
UnClip() {
global ClipSaved
global clip_empty
global clipped_text
global is_clipped
is_clipped := false
Clipboard := ClipSaved
ClipSaved =
}