【发布时间】:2012-12-16 00:49:52
【问题描述】:
好吧,我已经尽力查看代码示例并在网上发布了有关如何执行此操作的帖子,但几个月内我无法使用 Windows API 与其他 API 交互取得任何进展已经运行的程序。我不是最伟大的程序员,其中一些东西超出了我的范围。
我能做的最多就是找到 Calculator 进程及其句柄,并将其与 SetWindowText 一起使用来更改标题。我真正想学习的方法是让我的程序使用windows user32(我认为这一定是正确的库)通过实际按下软件计算器上的数字键按钮进行简单计算来输入一些数字。
我对这个程序并没有真正的用处,它只是我试图达到的一个目标,即在 C# 中学习如何在我的初级水平之后使用 Windows API。如果没有人有这方面的代码,或者即使你有,我非常感谢一些关于我应该阅读以了解如何做到这一点的网络书籍或资源的建议。
【问题讨论】:
-
获得窗口句柄后,您可以向其发送消息(通过
SendMessage或PostMessage)。要让它做一些事情,你可以尝试向它发送键盘消息 (WM_KEYDOWN/WM_KEYUP) 或按钮消息 (WM_COMMAND)。最好的办法是使用像 Spy++ 这样的工具来查看当您按下它的按钮时计算器本身会看到什么消息,然后复制这些消息。 -
作为辅助资源,如果您还没有 AutoIT,它有一个已编译的 C# API,可以为您连接到 Windows。您只需传入窗口的标题等等。我有一些代码可以在明天与您分享,具体说明您正在尝试使用 pinvoke 做什么。我曾经制作 c# 机器人,这就是我开始使用 pinvoke 的原因。
-
Are there any automation test example source code using .NET 的可能副本。
System.Windows.Automation命名空间正是为您想要做的事情而设计的。 -
+1 表示“如果没有人有这方面的代码,或者即使你有,我也会非常感谢一些关于我应该阅读的网络书籍或资源的建议,以了解如何做这个。”