我有一个EXE用于应用程序“MyWindow1”,它启动了一个窗口,它有几个下拉菜单,几个按钮等。
我没有此应用程序“MyWindow1”的源代码。我只是它的EXE&一些依赖的DLL,它是启动它的窗口和放大器所必需的。做它的功能。
现在我有另一个C ++模块,我通过使用“CreateProcess()API”自动启动这个“MyWindow1”应用程序。使用“system(taskkill)”自动结束。
但我甚至想要自动选择下拉菜单,只需按几下按钮就可以点击此“MyWindow1”应用程序中的按钮。 有没有办法我可以自动化这个,即使我没有这个“MyWindow1”应用程序的源代码(可能使用MFC)
答案 0 :(得分:3)
使用SendInput
模拟击键和鼠标移动。模拟击键可能是自动化菜单的最准确方法。
此外,杀死进程并不是一种非常干净的退出方式。您可以将WM_CLOSE
发送到主窗口,或通过SendInput
继续自动执行按键,以便按用户的方式正常退出。
答案 1 :(得分:1)
使用类似autohotkey(http://www.autohotkey.com/)之类的东西可能最容易,并生成带有C ++的不同autohotkey脚本。根据维基百科(http://en.wikipedia.org/wiki/AutoHotkey),Autohotkey还有一个用户提供的.Net互操作库。
答案 2 :(得分:0)
我推荐pywinauto Python包。我定期将它用于MFC应用程序。您可以在作者的网站上找到演示视频。