Мой работодатель приобрел сторонний инструмент OfficeConverter от Conveter Technology, который автоматизирует преобразование/восстановление файлов формата Office 2003 в формат Office 2007. Этот инструмент также сильно автоматизирует перевод/изменение требований к кодам макро/VBA между форматами Office 2003 и 2007.Как отправить клики или ключи из приложения VB6 в диалоговое окно Excel?
Моя проблема заключается в том, что во время этого преобразования инструмент открывает целевой продукт Office, скажем, Excel и затем открывает целевой файл пользователя (то есть Report.xls), а затем изучает любой код VBA/макроса для требований к изменениям. Проблема заключается в том, что ЕСЛИ код файла Excel зависит от какого-либо внешнего инструмента, такого как .OCX-файл, и если этот инструмент не существует на ПК, на котором я выполняю это действие, Excel выведет сообщение о том, что объект имеет не было найдено, останавливая весь процесс преобразования (тысячи файлов подряд), пока кто-то не появится, и MANUALLY нажимает соответствующую кнопку, чтобы закрыть диалоговое окно.
Я решил, что создание небольшого приложения для наблюдения в VB6 (эй, я состарился и мои навыки тоже) может сидеть на одном ПК и следить за этими диалоговыми окнами, и, в зависимости от конкретного сообщения, нажмите соответствующую с помощью вызова API SendMessage.
Проблема заключается в том, что я не смог получить SendMessage для того, чтобы на самом деле нажать кнопку для меня, я попытался отправить ему значение ключа возврата (vbKeyReturn) или даже клавишу пробела (vbKeySpace), но действие никогда приводит к закрытию диалогового окна, как должно. Я могу настроить фокус на вкладку между кнопками, включенными в диалоговое окно, но об этом.
Я попытался использовать SendKeys, но это гораздо менее надежное и сильно обескураженное в текущей документации, с которой я столкнулся.
Любые предложения? :)
Вы пытались отправить Escape? – stuartd