创建一个改变Windows应用程序执行的程序

时间:2014-07-15 22:38:04

标签: windows-applications

我有一个Windows应用程序,它有几个子表单。我必须浏览5或6个表格才能达到我需要的形式。这是耗时的,因为我必须在一天中打开它几次,而且我每天都会这样做。

我的需要:我没有这个应用程序的源项目,我把它作为一个可执行程序,但我需要创建一些应用程序,自动为我执行这些步骤。换句话说,我需要找到一种方法来自动点击浏览表单的按钮,并从第一步打开我需要的表单。

有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

确实存在通用解决方案来对任意程序执行此类功能。

您可以使用Spy ++或资源编辑器(如ResHack或ResEdit)查看程序并获取导航按钮的控件ID。

完成后,您可以获取程序本身的句柄,然后向用户WindowProcedure发送消息,如果用户使用鼠标单击控件,则会生成消息,

另一种方法是使用HWND函数获取正在运行的目标应用程序的位置(在获得GetWindowRect之后)。然后,您可以使用此位置以及vert / horiz距离来生成鼠标事件。

这两个结果或多或少有相同的结果,尽管有些应用程序不能使用方法#1。

在一个实例中,您需要使用Spy ++来获取控件ID。 在另一个实例中,您需要使用图像编辑器来获取控件的像素偏移量。 在这两种情况下,您都需要使用FindWindow以及窗口的标题文字才能获得HWND句柄。

您可以使用两者的组合 - 向程序本身询问GetDlgItem,以获取您需要单击的控件的句柄。然后,您可以在使用mouse_event将鼠标放在其上方并再次单击它之前查询控件的位置。 实际上,有很多方法可以给这只猫皮肤。

据说AutoIt这样的已有解决方案非常易于使用,并且比为每个目标编写新程序要容易得多。