How to get an ActiveX component's registered path

你。 提交于 2019-12-07 12:35:19

问题


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.


回答1:


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




回答2:


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



来源:https://stackoverflow.com/questions/4055793/how-to-get-an-activex-components-registered-path

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!