2010-06-24 1 views
1

У меня есть бинарное приложение на окнах (программное обеспечение для расписания поездов), которое содержит много интересных данных, которые мне нужны для моего проекта (ничего незаконного, просто какой-то странный алгоритм оптимизации). Но приложение не имеет api, а файлы данных имеют недокументированную двоичную форму.Как управлять приложением MFC из другой программы?

Итак, моя идея - управлять приложением из моего собственного кода. Я хотел бы отправить ему нажатия клавиш, чтобы заполнить форму, запустить запрос и сохранить результат в файл (для этого в приложении есть кнопки и пункты меню). И повторяйте много раз.

Есть ли библиотека для этого? Или пример? У меня есть общее представление, как это сделать, но я ленив, и я не хочу изобретать колесо.

Кроме того, те же данные доступны в Интернете. Есть ли какое-то решение для одной и той же задачи с веб-приложениями ASP (Winform)? Я мог бы, вероятно, обработать разбор результатов, но я не знаю, как заполнить значения элементов управления webforms.

Заранее спасибо.

ответ

1

Для этого вы можете использовать простые API Win32.

FindWindowEx, а затем, когда у вас есть ручка окна, вы можете отправить любое сообщение (например, WM_KEYDOWN), используя SendMessage.

Хороший инструмент, который помогает в этом процессе - это Spy ++, потому что он позволяет вам легче видеть иерархию окон, а также какие сообщения используются внутри приложения для мониторинга приложения.

Что касается элементов управления веб-формами, вам, вероятно, придется сделать больше работы, чем это, потому что, как правило, веб будет одним элементом управления холстом, который будет нарисован на заказ в зависимости от браузера. Возможно, сделать это через какой-то прокси-сервер - это лучший подход, когда вы действительно фильтруете HTML-страницы.