How to get an ActiveX component's registered p

2019-05-10 11:27发布

I've got a registered ActiveX component which I'm referencing in a C# project. However, I'd like to know the original path to the actual component being run. This is not the execution path per se. Is there something saner than searching the registry by hand?

The component is registered with a simple /regserver command, if that's relevant.

2条回答
孤傲高冷的网名
2楼-- · 2019-05-10 11:38

Search under the HKEY_CLASSES_ROOT\CLSID with the name of your EXE file. It should be used as value of "LocalServer32".

查看更多
在下西门庆
3楼-- · 2019-05-10 11:39

Here's a function that fetches the value out of the Registry. Extra validation required.

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("");
}

However, I was wondering if that wasn't already wrapped somewhere in some lost C# library...

查看更多
登录 后发表回答