サードパーティのアプリケーションとやり取りしようとしていますが、メソッドを呼び出そうとすると、エラー メッセージが表示されますSystem.InvalidOperationException: Operation must be performed on the application thread
。例外はタイプのものSystem.Reflection.TargetInvocationException
であり、これは私のアプリが完全に別のプロセスで実行されているためだと思います。私のプログラム (コンソール アプリケーション) をサード パーティ アプリと同じスレッドで実行する方法はありますか?
1 に答える
2
1 つのスレッドで 2 つの別個のアプリケーションを実行することはできません。
アプリケーションでいくつかの UI コントロールを操作しようとしている場合は、 を使用.Invoke()
して、関連するコードが UI スレッドで実行されていることを確認できます。
サードパーティのアプリケーションを操作しようとしている場合、適切な解決策は、それをどのように操作しているかに完全に依存します。APIを提供していますか?ウィンドウ ハンドルにメッセージを送信しますか? ??
別のアプリケーションの実行中のインスタンスとやり取りするには、リモート処理 (廃止) や WCF などを使用する必要があります。基本的に、他のアプリケーションはサーバーとして機能し、何らかの方法でそれに接続する必要があります。そのアセンブリを参照し、その中で定義されているクラスの 1 つをインスタンス化し、そのインスタンスでメソッドを呼び出しても、既に実行中のプロセスと対話することはできません。
于 2012-01-02T22:23:57.943 に答える