Поддерживает ли Process Explorer API или вызов из консоли?

Предположим, я установил несколько версий программного обеспечения, некоторые библиотеки 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", перейти к "Find | Find Handle или 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.

1 ответ

Решение

Эквивалентами командной строки великого Process Explorer являются ListDlls и Handle. Это, вероятно, то, что вам нужно.

Другие вопросы по тегам