Process Explorer是否支持API或从Console命令调用?

mil*_*sma 6 com dll winapi find process-explorer

假设我已经安装了多个版本的软件,一些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
Run Code Online (Sandbox Code Playgroud)

怎么知道哪个comObject.dll已注册?(哪个路径?在文件夹"version1"或"version2"下?) 答:这样做的一种方法是使用"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"
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,comObject1.dll和comObject2.dll来自Version1文件夹,而comObject3.dll来自Version2文件夹.

era*_*ran 8

伟大的Process Explorer的命令行等价物是ListDllsHandle.这可能就是你所需要的.