- 題名: 取得済みProecssからアプリ本体のインスタンスを取得したい
- 日時: 2010/03/11 10:33:51
- ID: 26538
- この記事の返信元:
- (なし)
- この記事への返信:
- [26539] Re[1]: 取得済みProecssからアプリ本体のインスタンスを取得したい2010/03/11 10:44:31
- ツリーを表示
■No26539に返信(魔界の仮面弁士さんの記事) 返信ありがとうございます ManagedSpyを試してみました メソッドの実行など、自アセンブリ内にいるクラスのようにフルアクセスしたかったのですが プロパティとイベントくらいしかControlProxyにありませんでした。 ComponentTypeプロパティがType型なのでGetMethodなどがありますが、 Invokeで実行する際にインスタンスオブジェクトが必要となっていて、 既存インスタンスの取得方法がわからないので実現できませんでした 新規インスタンスを生成する必要があるなら、むしろManagedSpyを使わず プロセスのMainModule.FileNameを元にインスタンス生成しようかなと思いますが 既存インスタンスを取得する方法はあるのでしょうか またプロセスのMainWindowsHandleを元に取得したControlProxyで、 ComponentTypeがnullになっているのもよくわかりませんでした。 ->子コントロールがいるなら、Child[x].Parentで目的のComponentTypeが取れるが 子コントロールいない場合はどうするのやら... ManagedSpyLibの日本語情報がほとんどないため非常に苦戦しております...^^;
OS:2k/XP/Vista/7
言語:VB/C#/DelphiPrism
.NET:2.0
こんにちは
.NETで作られたアプリAとBが起動しているとします。
AからBのプロセスを見つけることはできますが、このBのインスタンスを
取得する方法がわかりません。
プロセスから起動元のexe(またはdll)のパスは取れるので、そのファイルを元にリフレクションで
動的にインスタンス生成する方法も考えていますが、できれば起動済みの
アプリのインスタンスを横取りできればと思っています。
(.NET同士という前提があるので、それ以外のアプリは考慮しなくて良い状態です)
以上よろしくお願いします