如何获取ActiveX组件的注册路径

时间:2010-10-29 20:48:12

标签: c# com activex regsvr32

我有一个已注册的ActiveX组件,我在C#项目中引用它。但是,我想知道正在运行的实际组件的原始路径。这不是执行路径本身。有没有比手工搜索注册表更健全的东西?

如果相关,则使用simple / regserver命令注册该组件。

2 个答案:

答案 0 :(得分:1)

HKEY_CLASSES_ROOT\CLSID下搜索EXE文件的名称。它应该用作“LocalServer32”的值。

答案 1 :(得分:1)

这是一个从注册表中取出值的函数。需要额外验证。

using Microsoft.Win32;

//...
static string GetCOMPath(string comName)
{
    RegistryKey comKey = Registry.ClassesRoot.OpenSubKey(comName + "\\CLSID");
    string clsid = (string)comKey.GetValue("");
    comKey = Registry.ClassesRoot.OpenSubKey("CLSID\\" + clsid + "\\LocalServer32");
    return (string)comKey.GetValue("");
}

但是,我想知道是否在某些丢失的C#库中已经没有包装...