Ejemplo n.º 1
0
        private async void FetchInfos()
        {
            Bitmap bitmap = new Bitmap(16, 16);

            await Task.Run(() =>
            {
                var processName = AppId.Remove(AppId.Length - 4, 4);
                var processes   = Process.GetProcessesByName(processName);

                if (processes?.Length > 0)
                {
                    sourceProcess = processes[0];
                    try
                    {
                        AppName = sourceProcess.MainModule.FileVersionInfo.FileDescription;
                    } catch { }

                    try
                    {
                        var path = sourceProcess.MainModule.FileName;
                        var ie   = new IconExtractor(path);
                        var icon = ie.GetIcon(0);
                        bitmap   = icon.ToBitmap();
                    } catch { }
                }
            });

            if (bitmap != null)
            {
                Application.Current.Dispatcher.Invoke(() =>
                {
                    AppImage = Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                }, System.Windows.Threading.DispatcherPriority.Send);
            }

            InfoFetched?.Invoke(this, null);
        }