关于键盘模拟输入的BUG

BUG反馈 · 960 次浏览
臭冬瓜 创建于 2023-02-17 11:07

今天调试动作中的VBA代码,发现一个问题,涉及所有模拟输入的动作,包括:模拟按键A、模拟按键B和多步骤输入。

当在VBA主窗口输入代码后,按F5运行,如果当前光标不在程序内或模块中子程序有重名时,VBA会弹出一个窗口,让你选择一个宏运行。

这时,我模拟输入的内容并没有在宏名称输入框(下图中下面的红框)中,而且在主窗口(下图上面的红框)光标所在位置。

也就是说模拟输入的焦点获取错误。


回复内容
CL 2023-02-17 11:11
#1

quicker不会自动影响焦点。

对于这个窗口,如果需要焦点自动到输入框,可以试试模拟Alt+M键。


臭冬瓜 回复 CL 2023-02-17 11:13 :

马上就试试看,但是你说焦点不在这个输入框,我按DEL可以直接删除宏的名称

CL 回复 臭冬瓜 2023-02-17 11:15 :

这个也许只是Word本身处理了Del按键的消息。

臭冬瓜 回复 CL 2023-02-17 11:19 :

已测试,还是不行


臭冬瓜 回复 CL 2023-02-17 11:21 :

不光DEL,弹窗后,你直接可以直接输入文本,就在文本输入框

臭冬瓜 回复 臭冬瓜 2023-02-17 11:21 :

麻烦CL测试一下呗,WORD VBA你肯定有啊

CL 回复 臭冬瓜 2023-02-17 11:27 :

有点疑惑,是弹出的整个窗口没有焦点?那肯定ALt+M没用,因为这个需要弹出的对话框有焦点才能生效。

我单独测试是没问题的。


CL 回复 臭冬瓜 2023-02-17 11:28 :

这里F5是啥作用?好像代码窗口里按F5有时候不会弹出

CL 最后更新于 2023-02-17 11:29
臭冬瓜 回复 CL 2023-02-17 11:29 :

运行VBA代码

臭冬瓜 回复 臭冬瓜 2023-02-17 11:30 :

我觉得可能是QUICKE的等待窗口之类的问题,我前面有一个等待窗口

CL 回复 臭冬瓜 2023-02-17 11:38 :

我这里似乎比较正常


臭冬瓜 回复 CL 2023-02-17 11:38 :

好像找到问题原因了,正在测试

臭冬瓜 回复 CL 2023-02-17 13:13 :

找到原因了,我在粘贴VBA代码的时选择添加一个回车符,以为这样光标肯定是在文档最后,按F5应该出来确认宏名称的窗口,在粘贴前编辑器就有一个换行,这样就没有到代码结尾 ,所以窗口并没有弹出,当然也就输入不了宏名称了。

臭冬瓜 回复 CL 2023-02-17 13:18 :

再想问一下,模拟按键a和b到底有什么区别,执行结果是不是都一样

CL 回复 臭冬瓜 2023-02-17 13:20 :

b 可以传递参数,有个别键不支持,如Win。 A不能传递参数,但是所有键都支持。

回复主贴