Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public BitmapSource fun_取得exe圖示(string path, String s_附檔名)
        {
            //如果是捷徑,就先抓取真實路徑
            if (s_附檔名 == "LNK")
            {
                path = cs.C_按鈕選單_其他程式開啟.ResolveShortcut(path);
                if (path == null)  //如果抓不到圖片,就直接顯示錯誤圖片
                {
                    return(null);
                }
            }

            //取得EXE的圖示
            var ar_exe = C_exe_img.fun_exe_img(path);

            if (ar_exe != null)
            {
                foreach (var item in ar_exe)
                {
                    return(M.c_影像.BitmapToBitmapSource(item));
                }
            }

            return(null);
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        public void fun_播放_EXE(string path)
        {
            ar_img_delay = new List <int>();

            x = 0;
            //int_延遲 = 16;
            bool_暫停 = false;
            M.stackPlanel_動圖工具.Visibility = Visibility.Visible;
            fun_開始動作(false);

            String path_真實路徑 = path;

            //如果是捷徑,就先抓取真實路徑
            if (M.s_img_type_附檔名 == "LNK")
            {
                path_真實路徑 = cs.C_按鈕選單_其他程式開啟.ResolveShortcut(path);
                if (path_真實路徑 == null)  //如果抓不到圖片,就直接顯示錯誤圖片

                {
                    M.fun_顯示錯誤圖片(path);
                    return;
                }
            }


            List <BitmapSource> ar_BitmapSource = new List <BitmapSource>();


            //取得EXE的圖示
            var ar_exe = C_exe_img.fun_exe_img(path_真實路徑);

            if (ar_exe != null)
            {
                foreach (var item in ar_exe)
                {
                    ar_BitmapSource.Add(M.c_影像.BitmapToBitmapSource(item));
                }
            }

            //取得EXE的圖示

            /*foreach (var item in IconHandler.IconHandler.IconsFromFile(path, IconHandler.IconSize.Large)) {
             *  var b = item.ToBitmap();
             *  if (IsTransparentPalette(b)==false)
             *      ar_BitmapSource.Add(M.c_apng.BitmapToBitmapSource(b));
             * }
             * foreach (var item in IconHandler.IconHandler.IconsFromFile(path, IconHandler.IconSize.Small)) {
             *  var b = item.ToBitmap();
             *  if (IsTransparentPalette(b) == false)
             *      ar_BitmapSource.Add(M.c_apng.BitmapToBitmapSource(b));
             * }*/

            //存到全域變數
            ar_img = new BitmapSource[ar_BitmapSource.Count];
            for (int i = 0; i < ar_BitmapSource.Count; i++)
            {
                ar_img[i] = ar_BitmapSource[i];
                ar_img_delay.Add(500);
            }


            if (ar_img.Length > 0)  //至少有一張圖片才顯示

            {
                M.img.Source = ar_img[x];                                      //顯示圖片
                M.fun_設定顯示圖片size(ar_img[0].PixelWidth, ar_img[0].PixelHeight); //顯示寬高
                fun_顯示目前圖片張數();                                                //顯示總張數
                M.fun_圖片全滿(true);
            }
            else
            {
                M.fun_顯示錯誤圖片(path);
            }

            //隱藏exif視窗
            M.c_影像.c_exif.fun_初始化exif資訊();
            M.c_影像.c_exif.fun_顯示或隱藏視窗();
        }