Анализ сообщений, выдаваемых внешними приложениями..

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Torero
Сообщения: 2
Зарегистрирован: 07 фев 2006, 19:30

Люди, помогите пожалуйста:
Для обработки данных использую внешнюю программу. Данные, которые беру из excel, загружаю в неё через командную строку, используя функцию "shell".
После окончания обработки, внешнее приложение выдает окошко с надписями "Хорошо" либо "Плохо", предлагая при этом нажать Ok.
Вопросы:
1)Каким образом можно автоматически закрывать это окошко?
2)Можно-ли автоматически переносить его текст в таблицу?
3)Обработка занимает определённое время(от 2 до 10 сек.) по окончании обработки выскакивает 1 из вышеупомянутых окошек. Каким образом сделать так, чтобы макрос повторно обращался к внешнему приложению сразу после завершения обработки.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Я бы перенес функциональность внешнего приложения в макрос. (Т.е. не использовал бы внешних приложений)

А так, все ответы на эти вопросы из области WinAPI!

Закрыть приложение можно, послав ему сообщение WM_CLOSE.
(См функцию WinAPI - SendMessage).

Со вторым сложнее - надо найти окно внешнего приложения, а затем идентификатор (Handle) оконного объекта, содержащего искомую надпись. Получить надпись из окна обычно можно функцией GetWindowText.

С третьим еще сложнее.
Фактичеси после запуска внешнего приложения надо в цикле искать окно, которое должно появиться, потом сделать второе и первое...


Короче, если Вы не знакомы с WinAPI с этим лучше не связыватсья...
Torero
Сообщения: 2
Зарегистрирован: 07 фев 2006, 19:30

Беда в том, что внешнее приложение работает с "железом" - "функциональность внешнего приложения в макрос" включить нереально..
Прийдётся постигать winapi.. :) ))
Спасибо!
Ответить