7

複数のバージョンのソフトウェアをインストールしたとすると、一部の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フォルダーからのものです。

4

1 に答える 1

9

優れた Process Explorer に相当するコマンド ラインは、ListDllsHandleです。それはおそらくあなたが必要とするものです。

于 2011-10-13T06:08:54.443 に答える