我试图与第三方应用程序交互,但每当我尝试调用一个方法时,我得到一个错误消息说System.InvalidOperationException: Operation must be performed on the application thread
。例外是类型System.Reflection.TargetInvocationException
,我猜这是因为我的应用程序在一个完全独立的进程中运行。有没有办法让我的程序,这是一个控制台应用程序,开始运行在同一线程作为第三方应用程序?
不能让两个独立的应用程序在一个线程中运行。
如果你想在你的应用程序中与一些UI控件进行交互,你可以使用.Invoke()
来确保在UI线程中执行相关代码。
如果您试图操纵第三方应用程序,适当的解决方案完全取决于您如何与之交互。它是否提供API?向其窗口句柄发送消息???
为了与另一个正在运行的应用程序实例进行交互,您需要使用远程(已过时)或WCF之类的东西。本质上,其他应用程序充当服务器,您必须以某种方式连接到它。引用它的程序集,实例化其中定义的一个类,并调用该实例上的方法,这些都不能让您与已经在执行的进程对话。