我想创建一个小应用程序来从注册表中添加和删除用户定义的上下文菜单条目。为此,我需要以某种方式获取任意 DLL 的 CLSID,以便在编写新条目之前备份以前的条目(如果它们存在)。
尽管 regsrv32
以某种方式设法创建了这个神奇的数字,但我自己没有找到任何方法来获得该数字。
我希望有比这更好的东西:
- 为 DLL 名称扫描注册表
- 如果没有找到,注册,重新扫描,然后重新注销
如果 DLL 已重命名,我可以看出问题的可能性。
最佳答案
您可以考虑调用 LoadTypeLibEx在指定 REGKIND_NONE 的 DLL 上,然后检查获取 TypeLibInfo通过 ITypeLib 可获得信息接口(interface)传回给你。
MSDN 上有一些关于这类事情的信息.这是一个以 VB6 为中心的旧链接,但包含有关以这种方式检查 COM 组件的有用信息。
关于windows - 获取 DLL 文件的 CLSID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2280247/