如何避免“动作X已在执行”的提示?

使用问题 · 801 次浏览
craming 创建于 1天2小时前

需求是:避免“动作X已在执行”的提示。不知道该怎么实现?

 

背景是:

我把quicker的动作X,设置为电脑里的右键菜单。

然后,我选中电脑中的3个文件后,右键,选择了动作X。

此时,电脑上出现了2次提示“动作X已在执行”。

 

思路是:

1、要么,就是优化注册右键的过程,使得当我选中3个文件的时候,只执行1次动作X。

2、要么,就是quicker收到3条执行指令的时候,不要提示“动作X已在执行”。

 

备注:

下面的是bat的内容:

@echo off
rem Convert test.reg to reg add commands

rem Main menu item
reg add "HKEY_CLASSES_ROOT\*\shell\Item0" /v MUIVerb /d "QuickerStarter" /f
reg add "HKEY_CLASSES_ROOT\*\shell\Item0" /v SubCommands /d "" /f
reg add "HKEY_CLASSES_ROOT\*\shell\Item0" /v Icon /d "imageres.dll,170" /f
reg add "HKEY_CLASSES_ROOT\*\shell\Item0" /v Position /d "Top" /f

rem Create shell container  
reg add "HKEY_CLASSES_ROOT\*\shell\Item0\shell" /f

rem First submenu item (qk11)
reg add "HKEY_CLASSES_ROOT\*\shell\Item0\shell\Item0" /v MUIVerb /d "qk11" /f
reg add "HKEY_CLASSES_ROOT\*\shell\Item0\shell\Item0" /v Icon /d "imageres.dll,45" /f
reg add "HKEY_CLASSES_ROOT\*\shell\Item0\shell\Item0\command" /d "\"C:\Program Files\Quicker\QuickerStarter.exe\" \"%1\" runaction:284f4d7d-cff6-4037-b2eb-7535c5f05219?write_to_vars=true&text=Hello" /f


回复内容
困困君 1天0小时前
#1

勾选同时运行多个实例。可以搞个节流阀,连续触发第一个有效。

craming 回复 困困君 3小时36分钟前 :

感谢~

巴贝奇 23小时47分钟前
#2

我也遇到类似的问题,在Explorer中通过右键菜单执行Quicker动作时,如果选中的是多个文件,Quicker会执行多次。

Windows的逻辑就是这样的,每个文件执行一次命令,而不是一次将所有文件路径传递给命令。

我自己实现了类似节流阀的功能: Explorer_校验时间差

思路:计算这次运行距离上次运行的时间差,如果时间差很短,认为是重复运行,就停止动作,避免重复运行。

我设置的时间差是2秒,如果人为通过图形界面操作,通常很难在这么短的时间内执行多次动作,这样就能区分出来是Windows调用的。


craming 回复 巴贝奇 3小时35分钟前 :

好办法~


CL 3小时15分钟前
#3

如果动作本身不会多个实例互相冲突,在设置里开启允许多实例就可以了。

如果会冲突,那应该避免同时触发,而不是消除提示。

craming 回复 CL 1小时27分钟前 :

明白~会有冲突。但避免同时触发挺难的。现在的思路是,允许多实例,并在每个实例的一开头就设置‘节流阀’,把不需要运行的实例立即中止掉

回复主贴