我的雇主从 Conveter Technology 购买了第三方工具 OfficeConverter,它可以自动将 Office 2003 格式的文件转换/修复为 Office 2007 格式。该工具还可以高度自动化 Office 2003 和 2007 格式之间的宏/VBA 代码要求的翻译/更改。
我的问题是,在此转换过程中,该工具正在打开目标 Office 产品,例如 Excel,然后打开目标用户文件(即 Report.xls),然后检查任何 VBA / 宏代码的更改要求。问题是如果 Excel 文件代码依赖于某些外部工具,如 .OCX 文件,并且如果我正在执行此操作的 PC 上不存在该工具,Excel 将弹出一条消息,指出该对象具有未找到,停止整个转换过程(连续数千个文件),直到有人出现并手动单击相应的按钮以关闭对话框。
我认为在 VB6 中创建一个小型监视应用程序(嘿,我老了,我的技能也一样)可以坐在同一台 PC 上并监视这些对话框,并根据具体消息,通过 SendMessage 单击适当的按钮API 调用。
问题是我无法让 SendMessage 真正为我按下按钮,我尝试向它发送返回键值 (vbKeyReturn) 甚至空格键 (vbKeySpace) 但该操作从未导致对话盒子应有的关闭。我可以将焦点放在对话框上启用的任何按钮之间的选项卡上,但仅此而已。
我曾尝试使用 SendKeys,但在我遇到的当前文档中,它的可靠性要低得多,并且强烈建议不要这样做。
有什么建议么?:)