很多时候,说是写入了剪贴板,然而并没有真正写入

BUG反馈 · 1224 次浏览
轻风拂柳 创建于 2021-03-22 08:33

我在使用网友制作的ocr动作时,如:

https://getquicker.net/sharedaction?code=32315d1a-bcf5-4515-bdd8-08d78cdfb917

https://getquicker.net/sharedaction?code=ba82e11a-f845-4ca3-44ee-08d690b5076c

发现有时识别过后会将内容写入剪贴板,有时候不会。

看其他网友也有类似的反馈:

我贴个视频上来:

之所以会有提示信息,是因为我在代码中加入了检测剪贴板有没有成功写入的判断,每一次的输出结果都是“itTrue=true”,但并不是每一次都会真正写入。

我有个建议,Quicker中不是有一个等待剪贴板内容改变的模块么?但那只能用于监测第三方,能不能让自身也能用。像这要样:

如果剪贴板内容改变了,说明真正复制成功了,如果剪贴板内容没有改变,那就再写入一次。


回复内容
CL 2021-03-22 08:35
#1

一般是有别的软件影响剪贴板了。可以先退出其它软件测试一下。写入就是真的写入了,没有写入成功会报错。

轻风拂柳 2021-03-22 08:42 :
只有Ditto与剪贴板相关性大,退出了也是这样,时写入时不写入。如果是没有写入成功,它也不会报错,就很悲伤了。
轻风拂柳 2021-03-22 08:44 :

如果写入的同时,能判断剪贴板是否变化,这样会更有保证一些。

CL 回复 轻风拂柳 2021-03-22 09:02 :
可以看下quicker.log文件,如果有写入失败的情况会有记录。我查了一下代码,模块里在写入后会最长等待1秒等待剪贴板变化,但是有没有等待成功没有判断,我试试增加一个判断看看。
CL 2021-03-22 09:51
#2

刚更新了1.23.7版本,可以试下看看。另外关闭文本窗口也增加了返回坐标的功能。

轻风拂柳 2021-03-22 21:31 :
赞赞赞,写入到剪贴板的稳定性比之前的好太多了,之前几次就有一次没有真正写入,甚至有时连续几次都写入不到。刚刚我重装@Marcus 大神的【截图OCR】软件,测试了三大回,分别是识别24次出现一次(没有真正写入)、7次出现一次、72次出现一次。
这已经能确定,毛病确实出现在这。

不过也明显感觉到有等待时间了,能不能把等待剪贴板变化的逻辑改一下:如果写入后在最大等待时间内侦测到剪贴板变化,那么就判定为true,不再等待到最大时间。这样不用每一次都等待到最大时间。
轻风拂柳 2021-03-22 21:33 :
关闭文本窗口位置输出,测试ok。
CL 回复 轻风拂柳 2021-03-22 21:34 :

有变化会立即返回的,2秒是最长等待时间。 你的这个估计是有剪贴板冲突了,可能重启一下电脑,变换一下使用剪贴板的软件的启动顺序会好点。

轻风拂柳 回复 CL 2021-03-22 21:38 :

好的!

轻风拂柳 回复 CL 2021-03-22 21:40 :
那个文本窗口关闭时,结果内容输出到剪贴板好像从来没有失败过。
轻风拂柳 2021-03-24 00:13 :

崔大,笔记本电脑一般都有厂家自带的Fn键,希望能通过这个键启动Quicker面板。这个键一般与Ctrl相邻,本来单按ctrl键挺方便,但ctrl键在很多情况下都需要使用负担太大。目前的Quicker版本不支持设置这个Fn键,也不支持设置win键,更准确地说是设置了win键,但完全不起作用,单按win键弹出来的依然是开始窗口(我用的系统是Win7)。

Marcus-5折CDN 2021-03-22 12:58
#3

截图OCR的逻辑是这样的:

识别完成后会自动复制,窗口开启期间,若没有复制过其他内容,并且窗口内的内容变化了,比如手动改了错别字,此时关闭窗口会重新复制全部。

但若是识别完又手动复制了别的内容,就不会再复制了,以避免覆盖剪贴板内的重要内容。


动图看起来动作已经被修改了,建议重装动作试下。

Marcus-5折CDN 最后更新于 2021-03-22 13:03
轻风拂柳 2021-03-22 21:37 :

没有,我测试时用的是你做的原版程序。大神看看我上一楼给cl大佬的回复,那个写入到剪贴模块确实存在一点毛病,现在已经好多了。你怀疑我改了动作,应该是看到了剪贴板中出现重复的项,这毛病有时会出现,不是你这动作中的问题。

轻风拂柳 2021-03-22 22:27 :

大佬你最后的判断条件是【$= {isTrue} && {context} != "" && {selectText} == {resultText} && {context} != {resultText}】

我觉得最好是关闭文本窗口后将文本窗口内所有结果内容都写入到剪贴板,这里也不要【再判断是否与先前写入剪贴板的内容相同,如果相同就不要再写了】,因为先前也许没有真正成功写入剪贴板,即使成功写入了,再写一次也没什么关系,会覆盖先前的。

我们最常做的是,在识别过后的窗口中自己修改文本的错误,修改好了,就是最终结果,直接关闭窗口都写入剪贴板,如果只要部分内容,就自己选一下ctrlC一下,如果不选就表示全部都要。

大佬你是将【选中的文本】写入到剪贴板,我觉得吧,既然都选中了,完全可以自己ctrl C一下。

轻风拂柳 2021-03-22 22:30 :
真的希望点叉的时候将文本窗口的内容都写入到剪贴板。当然,翻译过后的那个内容就不要输出到剪贴板了。
Marcus-5折CDN 2021-03-24 22:58 :

选中了窗口内的文本,关闭窗口时会优先复制选中的。

回复主贴