1

これを尋ねる方法がわかりませんが、純粋に.Netで記述された実行中のプロセスにアクセスし、そのメモリ空間とアクティブなオブジェクトと対話できる方法があるかどうかを調べようとしています.

私は 2 つの POS パッケージのアドイン開発を行っており、外部ウィンドウでのデータ入力の分析のためにこれを理解しようとしています。情報や洞察をいただければ幸いです。

私が求めていることに別のスピンをかけるために...基本的に、おそらくsystem.diagnostics.processmoduleを使用して、特定の名前で実行中のプロセスを取得し、それをアプリケーションとしてインスタンス化してから掘る方法はありますか?特定の静的オブジェクトを見つけて、それを操作するには?

- - 追加 - -

誰かがリフレクションについて言及していることに気付きました...これは確かに私が尋ねようとしているものかもしれません...私が必要とする唯一のことは、おそらくプロセスを「リフレクト」し、特定の静的クラスを見つけて、そのクラスを「オブジェクト」なので、そのプロパティにアクセスできました...おそらくこれはより理にかなっています。

残念ながら、私が取り組もうとしているプログラムは、しばらくの間、プラグイン アーキテクチャの形式を持たないため、ある種のクレイジーな P/Invoke またはリフレクションのアイデアを使用してそれを実現できると考えました。

4

5 に答える 5

1

.NET リモート処理を参照してください。

簡単に言えば、オブジェクトを作成するウィンドウ サービスまたはコンソール アプリケーション (作成したカスタム オブジェクト) を作成できます。その後、TCP ポートに登録できます。

次に、同じTCPポートにアクセスできるクライアントサーバーがあり、2つの異なるPC上にあり、オブジェクトと対話することもできます.

その方法は、クライアント オブジェクトが認識し、サーバーが実装するインターフェイスを作成することです。

2 つのコンソール アプリケーションを相互に通信させることができます。これを行う方法についての質問があります。正確には正しくありませんが、正しい方向に向けられるはずです。

于 2009-02-19T22:25:40.390 に答える
0

このために特別に設計された .net の名前空間があり、

System.AddIn

dll への参照を追加する必要があります (.net 3.5 でのみ使用可能)。このクラスを使用して、バージョン管理と外部コードの分離をサポートするタイプセーフなプラグイン アーキテクチャを開発できます。

いくつかの例については、MSDN を参照してください。

于 2009-02-19T22:46:51.527 に答える
0

別のオプションとして、実際に変更する必要はなく、代わりに純粋に統計情報を探している場合は、いくつかのカスタム パフォーマンス カウンターを作成し、別のアプリケーションでそれらを監視することができます。 パフォーマンスしきい値の監視

于 2009-02-19T22:33:43.287 に答える
0

希望どおりに動作するかどうかはわかりませんが、Hawkeyeを使用すると、処理している Windows アプリケーションの場合、実行時に .NET オブジェクトを調べて調整できます。

http://www.acorns.com.au/Projects/Hawkeye/

于 2009-02-20T00:38:42.660 に答える
-1

簡単に、いいえ。

ただし、WinDBG (またはそのコマンド ライン バージョン) を自動化することは可能であり、.NET 用の SOS 拡張ライブラリと併用することも可能です。

基本的に、拡張性/プラグイン/自動化のために設計されたアプリケーションが必要です。

もう 1 つの可能性は、.exe が .dll とほとんど同じであるという事実を利用して、exe をクラス ライブラリであるかのようにロードして起動するアプリケーションを作成することです。その後、反射が可能になります。

于 2009-02-19T22:21:42.943 に答える