Ejemplo n.º 1
0
        public Dictionary <string, string> GetAttributes()
        {
            if (!IsDotNetAssembly)
            {
                return(null);
            }

            var attributeDictionary = new Dictionary <string, string>();

            // 获取 IReferenceIdentity 接口.
            Fusion.IReferenceIdentity referenceIdentity =
                Fusion.NativeMethods.GetAssemblyIdentityFromFile(ExeFilePath,
                                                                 ref Fusion.NativeMethods.ReferenceIdentityGuid) as Fusion.IReferenceIdentity;

            var enumAttributes = referenceIdentity.EnumAttributes();

            Fusion.IDENTITY_ATTRIBUTE[] IDENTITY_ATTRIBUTEs = new Fusion.IDENTITY_ATTRIBUTE[1024];

            enumAttributes.Next(1024, IDENTITY_ATTRIBUTEs);

            foreach (var IDENTITY_ATTRIBUTE in IDENTITY_ATTRIBUTEs)
            {
                if (!string.IsNullOrEmpty(IDENTITY_ATTRIBUTE.Name))
                {
                    attributeDictionary.Add(IDENTITY_ATTRIBUTE.Name, IDENTITY_ATTRIBUTE.Value);
                }
            }

            return(attributeDictionary);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取.Net应用程序全名.
        /// </summary>
        public string GetFullDisplayName()
        {
            if (!IsDotNetAssembly)
            {
                return(ExeFilePath);
            }

            // 获取 IReferenceIdentity 接口.
            Fusion.IReferenceIdentity referenceIdentity =
                Fusion.NativeMethods.GetAssemblyIdentityFromFile(ExeFilePath,
                                                                 ref Fusion.NativeMethods.ReferenceIdentityGuid) as Fusion.IReferenceIdentity;
            Fusion.IIdentityAuthority IdentityAuthority = Fusion.NativeMethods.GetIdentityAuthority();

            string fullName = IdentityAuthority.ReferenceToText(0, referenceIdentity);

            return(fullName);
        }