建议获取选中的文字,只需要判定Ctrl+C能成功就能过,无论焦点是否还在原窗口。

功能建议 · 711 次浏览
sd309991 创建于 2022-05-01 12:56

动作设计时,经常会遇到Ctrl+C,可以成功复制,但是获取选中的文字无法成功的情况,这也给很多用户使用动作的时候带来了困难。获取选中的文字,我认为重点应该放在是否能够获得文字上,而不是判定是否有焦点。

 

我使用的一个动作,动作同样的步骤可以在Edge浏览器获得选中的文字,QQ聊天界面的文字,却没办法获取。我认为可能是因为两者的焦点判定不一样导致。(具体来说,这个动作,需要切换到另一个界面,然后切换回来,就这一个步骤,QQ的焦点就失去了。)所以,我认为,获取选定的文字,不应该一定要把焦点放在文字上,只要能够复制到文字即可。

 

其实以往设计很多动作的时候也用这种情况,Ctrl+C每次都能够获取,使用获取模块成功率只有70%左右,有系统后台原因,也有误触导致焦点转移到其他的地方。但总的来说,Ctrl+C的容错率比获取模块要高是实在的结论。

 

所以,希望大佬能考虑,不要以焦点作为获取成功的条件。


回复内容
CL 2022-05-01 12:58
#1

本身也不会判断焦点的。每个软件写到剪贴板需要的时间不一样,模块里现在有参数可以设定最长等待剪贴板的时间,设置的大点就可以了。

sd309991 2022-05-01 13:40
#2

可惜的是,我的动作是要启动其他人的动作的,所以不能控制对方设定最长等待剪贴板的时间。 如果在前面加延时又会使启动速度减慢(启动器对这个有要求)。所以目前是无解的。

sd309991 2022-05-01 14:24
#3

不是等待时间的关系,已经把时间设置为10秒了。依然没办法获取文本,应该是在移动窗口的时候焦点发生了变化,即使同一个应用界面(QQ),焦点也会在移动窗口之后改变。



CL 回复 sd309991 2022-05-01 14:31 :

我猜这个估计是qq自己做了焦点处理,大概可能是从别窗口回到qq窗口的时候,会自动将焦点还原到输入框。你可以验证一下是不是

sd309991 回复 CL 2022-05-01 14:37 :
的确是QQ自身的原因,但是这就有了一个泛性的问题,可不可以记住一开始选定的位置,然后恢复的时候把焦点重加加在上面呢?这样的话就似乎可以避免各个软件自身的干扰了。
sd309991 最后更新于 2022-05-01 14:40
回复主贴