程序的所有动作都未设置等待执行的延迟时间,导致无法正常运行

BUG反馈 · 470 次浏览
ilcpm 创建于 2022-03-09 02:11

程序里面所有步骤都没有设置等待执行的时间,带来的问题有3个:

1. 运行动作时,还没来得及启动公式编辑器就执行后面的内容,结果就是程序没启动完就使用其PID(应该是这样),所以报错退出,位置在“置顶或打开公式编辑器,并将Latex公式发送到编辑器”中“激活进程主窗口的一步”

2. 同样的,因为没设置等待时间,可能切换程序到公式编辑器之后,程序还没反应过来就在尝试把公式粘贴进去,这里可能出错(这个功能我没测试)

3. 最后输出公式的时候,也是按快捷键和切换窗口的时候没有等待时间,所以按下ctrl A全选之后程序没反应过来就按ctrl T(我用的Axmath是这个快捷键),结果就是ctrl T这个快捷键没生效,无法复制TeX代码,导致粘贴空公式(另一个反馈中就说的是这个问题),以及最后切换窗口之后粘贴可能不成功,因为窗口可能还没切换过去就粘贴了

我这边问题1和3是触发了的

问题3的解决方案就是在子程序“根据WorkspaceName置顶工作空间”的第一个动作“激活进程主窗口”的步骤里面预留200毫秒的延迟给切换窗口留时间;子程序“根据不同的编辑器执行不同的复制操作”的发送快捷键ctrl A里面也设置200毫秒延迟给公式编辑器反应时间

问题1还在思考如何妥善解决,可以考虑:先判断公式编辑器窗口是否存在,存在就直接切换过去,不存在就启动程序然后给一个超时时间循环判断程序是否启动(我正在看quicker有没有直接能实现这个的功能)

 

程序写的挺好,用了C#和js,看得出来作者的功底还是很深的,希望可以优化一下!


回复内容
ilcpm 2022-03-09 02:38
#1

问题1目前的修改方案


在如图所示的“子程序”中,把第一个动作“激活进程主窗口”复制一份,再去掉第一个动作的“失败后停止”,而后按图2所示修改两个动作的延迟分别为1500和200

也就是说,第一步不管程序有没有运行,都等待1.5秒启动公式编辑器,第2步再获取公式编辑器的PID,如果第2步还是没有获取到进程PID(公式编辑器还是没有启动好),那就“失败后停止”

第2步获取到PID之后,预留200毫秒切换窗口,再执行后面的内容(往公式编辑器粘贴原窗口中已经存在的公式)

ilcpm 最后更新于 2022-03-09 02:41
for_Quick 2022-03-21 13:01
#2

这个问题可能是由于不同机器配置差异导致的,由于是在太忙了,暂时没时间修改,以后优化吧,总之,感谢您的反馈

回复主贴