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

时间:2013-03-04 16:02:56

标签: c# windows automation

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

我基本上试图在各种程序中自动执行各种任务的过程。

到目前为止,我能想到的唯一解决方案是将代码切换到相关窗口,然后用鼠标执行任务。 (Controlling the mouse with methods as shown here

这种方法的缺点当然是它无法在后台运行并阻止用户执行其他任务。

当然,如果这些目标应用程序收到“假”鼠标点击,同时仍然在后台运行,这个解决方案会很棒。如果可能,请分享!否则,任何解决这个问题的方法都会很棒。

1 个答案:

答案 0 :(得分:5)

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

这对Stack Overflow帖子来说太大了,但是这里有一些相关的功能可以帮助你入门:

PostMessageSendMessage是您可以用来向其他应用程序发送邮件的主要功能。

this post的答案有一些如何使用这些功能的基本例子。

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