如何从另一个程序控制MFC应用程序?

时间:2010-06-24 16:49:00

标签: winforms mfc winapi reverse-engineering

我在Windows(火车时刻表软件)上有一个二进制应用程序,其中包含我项目所需的大量内容数据(没有任何非法,只是一些奇怪的优化算法)。但是应用程序没有api,数据文件没有未记录的二进制形式。

所以我的想法是从我自己的代码中控制应用程序。我想发送键盘来填充表单,运行查询并将结果保存到文件中(在应用程序中有按钮和菜单项)。并重复多次。

这是否有图书馆?还是一个例子?我有一个大致的想法如何做到这一点,但我很懒,我不想发明轮子。

此外,网络上提供了相同的数据。是否有一些解决方案与ASP(Win窗体)Web应用程序相同的任务?我可以处理解析结果,但我不知道如何填充webforms控件的值。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用简单的Win32 API来执行此操作。

FindWindowEx然后,一旦掌握了窗口句柄,就可以使用WM_KEYDOWN向其发送任何消息(例如SendMessage)。

有助于此过程的一个好工具是Spy ++,因为它允许您更轻松地查看窗口层次结构,以及您正在监视的应用程序内部使用哪些消息。

对于Web表单控件,您可能需要做更多的工作,因为通常Web将是一个画布控件,根据浏览器自定义绘制的内容。也许通过某种代理方式执行此操作是一种更好的方法,您可以实际过滤HTML页面。