开发者

How to get an ActiveX component's registered path

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 the开发者_开发技巧re something saner than searching the registry by hand?

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


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


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...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜