C# 如何获取ActiveX组件';s注册路径
我有一个注册的ActiveX组件,我正在一个C#项目中引用它。但是,我想知道实际运行组件的原始路径。这不是执行路径本身。有什么比手工搜索注册表更明智的吗C# 如何获取ActiveX组件';s注册路径,c#,com,activex,regsvr32,C#,Com,Activex,Regsvr32,我有一个注册的ActiveX组件,我正在一个C#项目中引用它。但是,我想知道实际运行组件的原始路径。这不是执行路径本身。有什么比手工搜索注册表更明智的吗 如果相关,则使用简单的/regserver命令注册组件。在HKEY\U CLASSES\U ROOT\CLSID下搜索EXE文件名。它应该用作“LocalServer32”的值。这里有一个从注册表中提取值的函数。需要额外的验证 using Microsoft.Win32; //... static string GetCOMPath(stri
如果相关,则使用简单的/regserver命令注册组件。在
HKEY\U CLASSES\U ROOT\CLSID
下搜索EXE文件名。它应该用作“LocalServer32”的值。这里有一个从注册表中提取值的函数。需要额外的验证
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#库中了…所以这是一个进程外服务器?是否可以将属性(ProcessID)添加到类中?是的,进程外。但是,我无法编辑服务器本身,它已编译且无源代码。谢谢。我是在登记处筛选出来的。不过,我的目标是避免这样做:p使用流行编程语言阅读
HKCR\CLSID\\LocalServer32
的方法有很多,imho不需要独立的工具。非程序员可以使用reg查询