Предположим, я установил несколько версий программного обеспечения, некоторые библиотеки 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 зарегистрирован? (какой путь? В папке «версия1» или «версия2»?) Ответ: Один из способов сделать это - использовать «Обозреватель процессов», перейти к «Найти | Найти дескриптор или DLL ... », ввести comObject.dll и нажать кнопку «Поиск». {{ 1}} Затем путь отображается в списке .
ТЕПЕРЬ НАХОДИТСЯ К МОЕМУ ВОПРОСУ: Если программный пакет огромен с сотнями установленных DLL на основе COM, я не хочу вручную открывать "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.