如何检查是否一个COM组件(EXE / DLL文件)被登记(使用.NET)? [重复](How

2019-08-17 00:05发布

这个问题已经在这里有一个答案:

  • 如何检查是否一个DLL文件注册? 7个回答

如何检查,如果一个COM组件(EXE / DLL文件)注册或不使用.NET?

Answer 1:

只是要在注册表中查找。 HKEY_CLASSES_ROOT \ yourcom.component。



Answer 2:

这取决于。 所以你需要弄清楚你想看看哪个蜂巢您的组件将被注册到Windows注册表。

如果您的组件安装与regasm,没准HKCU将被使用,因为它会从用户的命令行运行。 但是,如果您使用的是微星,微星不得使用regasm,如果你运行MSI在每台机器的模式(ALLUSERS =“1”)或管理员可将项目直接进入HKLM。 在另一方面,如果你运行MSI按USER(ALLUSERS =“”),或作为一个非特权帐户,它将使用HKCU。

HKCR合并视图HKLM和HKCU的,所以你不能告诉蜂房被实际使用,它可能不给你,你想知道什么。 MSDN HKEY_CLASSES_ROOT

如果您的COM组件注册每用户,它可能会失败,这取决于用户运行安装。 所以,如果你要检查它是否被正确安装,你需要找出哪些关键你真的想使用,或者如果HKCR是可以接受的。 对于最终用户测试,HKCR可能是测试,因为它会受到大家和(.NET中)访问不会引发安全异常的最安全的方式。

也看到这个帖子: regasm和HKCU



Answer 3:

从Visual Studio可以从参考经理做到这一点。

  1. 转到解决方案资源管理>参考
  2. 参考上点击右键
  3. 选择添加引用...
  4. 从菜单中选择的COM项目

这个工具的好处是,你可以为对象通过关键字多一点优雅搜索比通过注册表进行导航。 请注意,你可以看到在GAC注册以及非COM对象。



文章来源: How to check if a COM component (EXE/DLL file) is registered or not (using .NET)? [duplicate]
标签: c# .net com