【问题标题】:Windows Form Automation in C++ using low level WinAPI Calls?使用低级 WinAPI 调用的 C++ 中的 Windows 窗体自动化?
【发布时间】:2013-01-29 22:41:30
【问题描述】:

我正在开发一个项目,该项目应该采用 C++ 编写的程序,该程序使用 Windows 窗体(一个基本的计算器采用两个整数、一个运算符和一个等号按钮),并使用 C++ 和低级 WinAPI 调用使其自动化。

我在谷歌上搜索了一下,但我找到的大部分参考资料都相当陈旧,我想确保我的方向是正确的。我看到了 OLE 自动化,但不确定这是否是正确的方向

我所知道的: 我不能使用 Reflection,包括 Visual Studio 的 UI/测试自动化程序集在内的任何 3rd 方库。

我假设无论我使用什么我都会启动应用程序,通过标题获取窗口,以某种方式通过元素名称获取每个元素,模拟点击,读取计算值等。问题就在于此

【问题讨论】:

  • 这是某种学校作业吗?您通常只需为此使用 UI 自动化库。如果这是一个学校项目,那么你怀疑你应该使用你学到的东西,不管它可能是什么。我们不知道。
  • 不,这不是学校作业。它没有分级,描述中鼓励我使用互联网进行研究......所以我在这里。

标签: c++ windows winforms winapi


【解决方案1】:

听起来您对窗口句柄等基础知识很熟悉,所以我将跳过这部分,但这里有一些提示可以帮助您入门:

查找表单的控制窗口 - EnumChildWindows()

向每个窗口发送消息 - SendMessage()

最后,您可以发送到按钮的消息列表 - Button Messages(对于您的程序,请特别查看 BM_CLICK 消息)

您可以通过查看“msdn 编辑控件(等)消息”找到其他每个控件消息的 MSDN 参考。

【讨论】:

  • 谢谢!这是我多年来第一次跳回 Win API 函数并使用 C++。很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
相关资源
最近更新 更多