COM を介して、ターゲット システムを完全に制御できる可能性があります。たとえば、IE で javascript の ActiveXObject オブジェクトを使用すると、システム プロパティやファイルに直接アクセスしたり、それらと対話したりするように設計された特定のオブジェクトを作成できます。常識的に考えると、ユーザーはブラウザをインストールした直後に IE の ActiveX 機能を無効にして、ネットサーフィンをしている間、または少なくとも許可する Web サイトに細心の注意を払ってシステムが保護されていることを確認する必要があります。しかし、多くの平均的な PC ユーザーが、これを行う方法や理由を知っているか、時間の経過とともにマイクロ管理にうんざりしているとは思えません。私のCOMクラスが対応しているPCユーザーまたは管理者は、それに対処する必要がないことを大いに感謝すると思います。ありがたいことに、最近の IE バージョンにはデフォルトで ActiveX が無効になっているパッケージが付属しているようです。
VB で非常に用途の広い COM クラス ライブラリを作成しました。どの Web サイトからでも呼び出せるようにするつもりはありませんでしたが、その機能は COM プラットフォームの一部にすぎません。Web サイトがホワイトリストに登録されたドメインにない限り、ライブラリが IE から呼び出されないようにして、ユーザー (および最終的にはイントラネット全体) を悪意のある Web サイトからの被害から積極的に保護したいと考えています。VB.Net で、どのアプリケーションが私の DLL を呼び出したかを判断し、それが IE から発信されたコマンドまたはプロセスから呼び出されたかどうかを判断できるようにするための最良の方法は何でしょうか? そして、私のdllと呼ばれるドメインは何ですか?
編集:これは重複している可能性があると思います。参照:アセンブリを呼び出してアプリケーション名 VB.NET を取得する
System.Environment.GetCommandLineArgs()(0)
呼び出し元のアプリケーション パスを取得します。この情報を使用して、アプリケーションのブラック/ホワイト リストと比較できます。とりあえず問題解決。