首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找给定CLSID的DLL?

如何查找给定CLSID的DLL?
EN

Stack Overflow用户
提问于 2009-05-22 13:07:23
回答 4查看 42.4K关注 0票数 30

我遇到过托管DLL调用某些非托管DLL的情况。我知道非托管DLL的CLSID,有没有办法找出包含该CLSID的二进制文件?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-22 13:13:20

Normaly,你可以直接去:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\"GUID“

例如,找到一个名为"InProcServer32“的键,就会有具有该DLL的默认值。这是一种简单的方法。

票数 37
EN

Stack Overflow用户

发布于 2009-05-22 13:11:32

你能不能仅仅使用regedit在注册表中搜索它并查找二进制路径。

票数 7
EN

Stack Overflow用户

发布于 2015-02-08 17:05:55

基于BobbyShaftoe回复,我们可以构建一个简单的vbs脚本,为我们读取注册表:

代码语言:javascript
复制
Dll_RegPath = "HKEY_CLASSES_ROOT\CLSID\<GUID>\InProcServer32\"

将以下内容粘贴到"test.vbs“

代码语言:javascript
复制
Sub Main

    ' used to find location of "System.Collections.ArrayList" progid dll
    Const csGUID = "{6896B49D-7AFB-34DC-934E-5ADD38EEEE39}"

    MsgBox srGetDllPathByGUID(csGUID)

End Sub

Function srGetDllPathByGUID( sGUID )
    Const csRegPath = "HKEY_CLASSES_ROOT\CLSID\<GUID>\InProcServer32\"

    Dim oShell: Set oShell = CreateObject("WScript.Shell")
    Dim sReg: sReg = Replace( csRegPath, "<GUID>", sGUID ) ' build str

    srGetDllPathByGUID = oShell.RegRead(sReg)

    Set oShell = Nothing ' clean up
End Function

Call Main

您还可以通过以下方式查找ProgId:

代码语言:javascript
复制
ProgID_RegPath = "HKEY_CLASSES_ROOT\CLSID\<GUID>\ProgID\"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/897743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档