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