我希望与我的C#应用程序中的其他Windows应用程序进行交互。这应该可以在后台完成,而用户继续做其他事情。目标应用程序不是我的,但我知道它们是什么,所以他们的UI /等。众所周知。
我基本上试图在各种程序中自动执行各种任务的过程。
到目前为止,我能想到的唯一解决方案是将代码切换到相关窗口,然后用鼠标执行任务。 (Controlling the mouse with methods as shown here)
这种方法的缺点当然是它无法在后台运行并阻止用户执行其他任务。
当然,如果这些目标应用程序收到“假”鼠标点击,同时仍然在后台运行,这个解决方案会很棒。如果可能,请分享!否则,任何解决这个问题的方法都会很棒。
答案 0 :(得分:5)
我只是想说,如果没有其他应用程序开发人员的合作,你所做的事情将变得非常困难。但是,您可以使用Windows消息来完成您尝试执行的操作。这是一种在没有设置显式通信的情况下将信息发送到窗口的方法。您需要使用本机方法来执行此操作,但这非常简单。但要小心,因为实现它并不像它看起来那么简单 - 例如,如果你不小心向封闭(或不可见)窗口发送消息,你可能陷入死锁。
这对Stack Overflow帖子来说太大了,但是这里有一些相关的功能可以帮助你入门:
PostMessage和SendMessage是您可以用来向其他应用程序发送邮件的主要功能。
this post的答案有一些如何使用这些功能的基本例子。
最后,here是一个Windows消息代码列表供参考。