使用C#与另一个程序进行交互

我希望与我的C#应用​​程序中的其他Windows应用程序进行交互。 这应该能够在后台完成,而用户继续做其他事情。 目标应用程序不是我的,但我知道他们是什么,所以他们的用户界面/等。 已知。

我基本上是试图通过各种程序自动化各种任务的过程。

到目前为止,我能想到的唯一解决scheme是将代码切换到相关的窗口,并用鼠标执行任务。 ( 用这里显示的方法控制鼠标 )

当然,这种方法的失败是它不能在后台运行,并阻止用户执行其他任务。

当然,如果这些目标应用程序在仍然在后台运行时收到“假”的鼠标点击,那么这个解决scheme会很好。 所以,如果这是可能的,请分享! 否则,任何解决这个问题的办法都将是光明的。

我只想说,如果没有其他应用程序的开发人员的合作,你所做的将会变得非常难以可靠。 但是,您可以使用Windows消息来完成您正在尝试执行的操作。 这是将信息发送到窗口而不显式建立通信的一种方法。 你需要使用本地方法来做到这一点,但它非常简单。 然而,要小心,因为实现这个并不像看起来那么简单 – 例如,如果您不小心将消息发送到封闭(或不可见)窗口,则可能会陷入死锁。

这对于Stack Overflow来说太大了,但是这里有一些相关的函数可以让你开始:

PostMessage和SendMessage是可以用来将消息发送到其他应用程序的主要功能。

这篇文章的答案有一些如何使用这些函数的基本例子。

最后, 这里是一个Windows消息代码列表供参考。