C# 如何检查COM组件(EXE/DLL文件)是否已注册(使用.NET)?
如何检查COM组件(EXE/DLL文件)是否已注册或未使用.NET?只需在注册表中查找即可。HKEY\u CLASSES\u ROOT\yourcom.component.视情况而定。您的组件将注册到Windows注册表中,因此您需要确定要在哪个配置单元中查找 如果您的组件安装了regasm,则可能会使用HKCU,因为它将从用户的命令行运行。但是,如果您使用MSI,MSI可能不会使用regasm,如果您以每台机器模式(ALLUSERS=“1”)或管理员身份运行MSI,则MSI可能会将条目直接放入HKLM。另一方面,如果您按用户(ALLUSERS=“”)或以非特权帐户运行MSI,它将使用HKCU HKCR是HKLM和HKCU的合并视图,所以您无法判断实际使用的是哪个蜂巢,它可能无法提供您想要知道的信息 如果COM组件是按用户注册的,则它可能会失败,具体取决于运行安装的用户。所以,如果你想检查它是否安装正确,你需要弄清楚你真正想要使用的密钥,或者HKCR是否可以接受。对于最终用户测试,HKCR可能是最安全的测试方式,因为它将被所有人访问,并且(在.NET中)不会引发安全异常C# 如何检查COM组件(EXE/DLL文件)是否已注册(使用.NET)?,c#,.net,com,C#,.net,Com,如何检查COM组件(EXE/DLL文件)是否已注册或未使用.NET?只需在注册表中查找即可。HKEY\u CLASSES\u ROOT\yourcom.component.视情况而定。您的组件将注册到Windows注册表中,因此您需要确定要在哪个配置单元中查找 如果您的组件安装了regasm,则可能会使用HKCU,因为它将从用户的命令行运行。但是,如果您使用MSI,MSI可能不会使用regasm,如果您以每台机器模式(ALLUSERS=“1”)或管理员身份运行MSI,则MSI可能会将条目直接放入
另请参阅本文:从VisualStudio,您可以从参考管理器执行此操作
这个工具的好处是,通过关键字搜索对象比在注册表中导航要优雅一些。注意,您也可以看到在GAC中注册的非COM对象。它没有回答有关编程检查的问题。您知道,其他答案在技术上也都不是编程的。否决票真是太好了。下面是一个使用C#的例子: