zoukankan      html  css  js  c++  java
  • c# 获取 com 引用真实组件地址

    1.根据guid获取

    var clsid = new Guid("63EA2B90-C5A8-46F4-8A6E-2F2436C80003").ToString("B");
        var registryKey = Registry.ClassesRoot.OpenSubKey(@"Wow6432NodeCLSID" + clsid + @"InprocServer32");
        //32位程序与64位此处路径可能有所不同,但一般会自动跳转,具体情况还得分析。
        //HKEY_CLASSES_ROOTWow6432NodeCLSID{63EA2B90-C5A8-46F4-8A6E-2F2436C80003}InprocServer32
        if (registryKey != null)
        {
            var classPath = registryKey.GetValue("CodeBase").ToString().Trim();
            if (!string.IsNullOrWhiteSpace(classPath))
            {
                var uri = new Uri(classPath);
                if (uri.IsFile)
                {
                    Console.WriteLine(uri.LocalPath);
                }
            }
        }

    2.获取注册在gac中的组件地址,用上面的方法是不行的。

    var ass = Assembly.LoadFrom(@"C:UsersAdministratorDesktop	estFirstEliteTools.dll"); //只要guid相同就可找到真实地址
    MessageBox.Show(ass.CodeBase);
  • 相关阅读:
    面向对象的设计模式2
    数据结构
    算法题目1
    5.7(1) 反射
    hashMap原理(java8)
    6.1 接口
    18.1 线程
    13.2 具体的集合
    scrapy(2)——scrapy爬取新浪微博(单机版)
    5.1 类、超类和子类
  • 原文地址:https://www.cnblogs.com/nanfei/p/10218353.html
Copyright © 2011-2022 走看看