我有一个已注册的ActiveX组件,我在C#项目中引用它。但是,我想知道正在运行的实际组件的原始路径。这不是执行路径本身。有没有比手工搜索注册表更健全的东西?
如果相关,则使用simple / regserver命令注册该组件。
答案 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#库中已经没有包装...