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

Joe*_*oel 4 c# windows automation

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

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

到目前为止,我能想到的唯一解决方案是将代码切换到相关窗口,然后用鼠标执行任务.(使用此处所示的方法控制鼠标)

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

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

Ste*_*ook 5

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

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

PostMessageSendMessage是可用于将消息发送到其他应用程序的主要功能.

这篇文章的答案有一些如何使用这些功能的基本例子.

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