Как получить зарегистрированный путь компонента ActiveX - PullRequest
3 голосов
/ 30 октября 2010

У меня есть зарегистрированный компонент ActiveX, на который я ссылаюсь в проекте C #.Тем не менее, я хотел бы знать исходный путь к фактическому компоненту, который выполняется.Это не путь выполнения как таковой.Есть ли что-нибудь более разумное, чем поиск в реестре вручную?

Компонент регистрируется с помощью простой команды / regserver, если это актуально.

Ответы [ 2 ]

1 голос
/ 02 ноября 2010

Вот функция, которая выбирает значение из реестра.Требуется дополнительная проверка.

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

1 голос
/ 02 ноября 2010

Поиск под HKEY_CLASSES_ROOT\CLSID с именем вашего EXE-файла. Его следует использовать как значение «LocalServer32».

...