複数のバージョンのソフトウェアをインストールしたとすると、一部のDLLはCOMとして登録されます。例えば:
.../version1/Application.exe
normal.dll
comObject.dll -- register as COM to use
.../version2/Application.exe
normal.dll
comObject.dll -- register as COM to use
どのcomObject.dllが登録されているかをどのように知ることができますか?(フォルダ「version1」または「version2」の下のどのパスですか?) 回答:これを行う1つの方法は、「Process Explorer」を使用し、「Find | Find Handle or DLL ...」に移動して、「comObject.dll」と入力することです。 「検索」ボタンをクリックします。 次に、パスがリストに表示されます。
今私の質問に来ます:ソフトウェアパッケージが巨大で、何百ものCOMベースのDLLがインストールされている場合、手動で「Peocess Explorer」を開いて、検索結果で各DLL / OCX/EXEを検索したくありません。リストの内容をコピーすることはできません!!
私が欲しいのは、次のコマンドのように実行するツールであり、batファイルで実行できます。
ProcessExplorer.exe -Find "comObject1.dll" -append "C:\temp\output.txt"
ProcessExplorer.exe -Find "comObject2.dll" -append "C:\temp\output.txt"
ProcessExplorer.exe -Find "comObject3.dll" -append "C:\temp\output.txt"
output.txtは次のようになります。
Process PID Type Handle or DLL
comObject1.dll 1 DLL C:\ApplicationExample\Version1\comObject1.dll
comObject2.dll 1 DLL C:\ApplicationExample\Version1\comObject2.dll
comObject3.dll 1 DLL C:\ApplicationExample\Version2\comObject3.dll
上記の例では、comObject1.dllとcomObject2.dllはVersion1フォルダーからのものであり、comObject3.dllはVersion2フォルダーからのものです。