コード例 #1
0
ファイル: WinProgs.cs プロジェクト: threax/DS4Windows
        public static string ResolveMsiShortcut(string file)
        {
            StringBuilder product   = new StringBuilder(NativeMethods.MaxGuidLength + 1);
            StringBuilder feature   = new StringBuilder(NativeMethods.MaxFeatureLength + 1);
            StringBuilder component = new StringBuilder(NativeMethods.MaxGuidLength + 1);

            NativeMethods.MsiGetShortcutTarget(file, product, feature, component);

            int           pathLength = NativeMethods.MaxPathLength;
            StringBuilder path       = new StringBuilder(pathLength);

            NativeMethods.InstallState installState = NativeMethods.MsiGetComponentPath(product.ToString(), component.ToString(), path, ref pathLength);
            if (installState == NativeMethods.InstallState.Local)
            {
                return(path.ToString());
            }
            else
            {
                return(null);
            }
        }
コード例 #2
0
        String GetMsiShortcut(String _rawPath)
        {
            var product   = new StringBuilder(NativeMethods.MaxGuidLength + 1);
            var feature   = new StringBuilder(NativeMethods.MaxFeatureLength + 1);
            var component = new StringBuilder(NativeMethods.MaxGuidLength + 1);

            NativeMethods.MsiGetShortcutTarget(_rawPath, product, feature, component);

            var pathLength = NativeMethods.MaxPathLength;
            var path       = new StringBuilder(pathLength);

            NativeMethods.InstallState installState = NativeMethods.MsiGetComponentPath(product.ToString(), component.ToString(), path, ref pathLength);
            if (installState == NativeMethods.InstallState.Local)
            {
                return(path.ToString());
            }
            else
            {
                return(null);
            }
        }