我有一个脚本可以抓取屏幕的某个部分并获取大约100-200字节长的文本到剪贴板中。有时,由于Web服务器超时或缺少CSS定义等,页面无法正确呈现并且理智的鼠标拖动,选择更大量的文本并将其复制到剪贴板。
我希望能够注意到这种情况并废弃剪贴板内容并再次运行我的脚本,直到它达到100-200字节的预期大小。如果大缓冲区持续发生一定次数,最后会中止脚本。
我有它的逻辑,但只有我无法弄清楚剪贴板大小以及如何在AHK脚本中获取它。它有预定义的变量吗?还是有另一个更复杂的方法?我想到的是将内容粘贴到记事本中并保存。然后查看文件大小,但它非常复杂。我想要一些没有磁盘写操作的东西。
有什么想法吗?我看到strlen命令但不确定如何使用它......
答案 0 :(得分:1)
如果剪贴板中有文字,则可以:
ClipSize := strlen(clipboard)
示例脚本
sClip:=GetClipboardSize(Clipboard)
sClip_a:=GetClipboardSize(ClipboardAll)
MsgBox Clipboard Size: %sClip%`nClipboardAll Size: %sClip_a%
GetClipboardSize(c) {
if (!s:=strlen(c)) {
tmp:=A_temp "\clipboardsize_" A_TickCount "~~tempfile~~.tmp"
FileDelete,%tmp%
FileAppend,%ClipboardAll%,%tmp%
FileGetSize,s,%tmp%
FileDelete,%tmp%
}
return s
}