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...
精彩评论