使用UI命令时,因为底层COM接口的限制,如果同时开启了多个同名进程,可能会获取到错误的活动文档。
各位,请教一下上述问题有其他方式可以解决么?开启多个excel文档后,使用UI命令经常会在非活动文档中生效。
谢谢!!
感谢老大关注,目前发现的问题是 FormatCellsFontDialog、 RowHeight等等命令,反正涉及通过office软件辅助--执行界面命令-Excel--命令ID中的命令执行,偶尔就会将命令发送到非活动的excel文档中。偶尔的意思就是随机打开某几个excel文档后,就会有概率出现这问题,不好复现。
命令触发都是通过Quicker弹出面板方式,没试过快捷键。触发后会不会丢失焦点,一个按钮中很多动作,其中"office软件辅助"执行的UI命令会在其它非活动窗口执行,但常规动作(比如发送信息到窗口)仍在弹出面板的窗口执行。打开多个excel文档,任务管理器中也只有一个excel.exe进程。
我一直用的双屏,两个文档分别在两个屏幕上显示,在其中一个活动文档上执行"office软件辅助"UI命令就大概率会出现问题,这只是其中一种情况,无论非活动文档是最大化还是最小化,不影响故障发生。
出现问题后,目前我是关闭被触发命令的非活动文档,再打开后一般就会恢复正常,恢复正常就是在哪个活动文档触发命令就在哪个文档生效,而不是在其它非活动文档生效。
出现故障这情况经常是在新打开excel文档后出现,如果打开后没有出现问题,在后续使用过程中虽然也会出现这问题,但出现频率很低,碰到过几次。
看到"office软件辅助"模块介绍里,有提到"因为底层COM接口的限制,如果同时开启了多个同名进程,可能会获取到错误的活动文档"。我想这问题是不是也是因为COM接口限制,不懂这个。虽然只需要简单关闭再打开文档一般能解决问题,但体验不太好,就想着有什么方式能加入命令按钮中,保证不会把UI命令发送到其它非活动文档中。
再出现问题我在关注一下,能录屏的话我录屏一下,语言能力有限,表述的不是很清晰。
这个API本身是对活动窗口执行,也没有提供可选窗口的参数,所以可能是某个特定因素引起的。 可以试试 在其它电脑上有没有这个选项,以及有没有什么规律线索。