12

現在、私のコードは

SurferApp = Marshal.GetActiveObject("Surfer.Application") as Surfer.Application

サーファーと呼ばれるソフトウェアの実行中のインスタンスを取得するために、簡単にするために、誰もが知っているサーファーをワードに置き換えることができます。ここで、2つのMS Wordアプリケーションを実行していて、両方を使用して取得したいとします。実行中Marshal.GetActiveObject()の両方のインスタンスを取得し、それぞれを個別のオブジェクトに関連付けるにはどうすればよいですか?

4

2 に答える 2

13

Marshal.GetActiveObjectは、ROT(実行中のオブジェクトテーブル)で最初に見つかったインスタンスを返します。同じ名前/IDで複数のインスタンスを実行している場合は、ROTから直接取得する必要があります。

開始するためのいくつかのリンク:

于 2012-11-17T16:01:31.720 に答える
3

受け入れられた回答のリンクに加えて、特に関心のあるアプリケーションがAutoCADである場合、ROTを歩くのに非常に役立つ次のことがわかりました。

http://adndevblog.typepad.com/autocad/2013/12/accessing-com-applications-from-the-running-object-table.html

于 2015-01-26T23:45:17.500 に答える