我使用regsvr32来注册和取消注册非托管DLL,以便在我的C#应用程序中使用它。但是我没有在regsvr32工具中看到任何列出所有已注册DLL的参数,那么如何获得所有已注册DLL的列表呢?
我使用regsvr32来注册和取消注册非托管DLL,以便在我的C#应用程序中使用它。但是我没有在regsvr32工具中看到任何列出所有已注册DLL的参数,那么如何获得所有已注册DLL的列表呢?
要查看所有已注册的DLL,您可以使用以下免费实用程序:
RegDllView 是一个工具,用于查看系统上已注册的dll / ocx / exe文件,还可以从资源管理器中注册dll文件。
的ListDLLs 是另一个报告加载到进程中的DLL的工具。您可以使用它列出加载到所有进程中的所有DLL,特定进程,或列出加载了特定DLL的进程。 ListDLL还可以显示DLL的完整版本信息,包括其数字签名,并可用于扫描未签名DLL的进程。
最后,您也可以参考这个 C#中的Dll Profiler CodeProject.com上的文章。 DLL探查器 用于列出当前在您的计算机中加载的所有DLL,包括它们的加载位置及其版本号,大小,修改日期,产品名称和产品版本。
要查看所有已注册的DLL,您可以使用以下免费实用程序:
RegDllView 是一个工具,用于查看系统上已注册的dll / ocx / exe文件,还可以从资源管理器中注册dll文件。
的ListDLLs 是另一个报告加载到进程中的DLL的工具。您可以使用它列出加载到所有进程中的所有DLL,特定进程,或列出加载了特定DLL的进程。 ListDLL还可以显示DLL的完整版本信息,包括其数字签名,并可用于扫描未签名DLL的进程。
最后,您也可以参考这个 C#中的Dll Profiler CodeProject.com上的文章。 DLL探查器 用于列出当前在您的计算机中加载的所有DLL,包括它们的加载位置及其版本号,大小,修改日期,产品名称和产品版本。
static void Main(string[] args)
{
var parent = Registry.ClassesRoot.OpenSubKey("CLSID");
var subKeys = parent.GetSubKeyNames();
foreach (var subKey in subKeys)
{
var sub = parent.OpenSubKey(subKey);
if (sub != null)
{
var inProc = sub.OpenSubKey("InProcServer32");
if (inProc != null)
{
var val = inProc.GetValue(null);
if (val != null)
{
var name = val.ToString();
if (!string.IsNullOrWhiteSpace(name))
Console.WriteLine(name);
}
}
}
}
}
你应该可以使用 注册处 阅读所有已注册的 CLSID的 在里面 Computer\HKEY_CLASSES_ROOT\Wow6432Nodes\CLSID。没有看过32位Windows,看看在哪里 CLSIDs 是。