假设我安装了多个版本的软件,其中一些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”和单击“搜索”按钮。 然后路径显示在列表中。
现在问我的问题:如果一个软件包很庞大,安装了数百个基于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文件夹。