NEWS

[C#] Hướng dẫn lấy icon từ process

[C#] Hướng dẫn lấy icon từ process
Đăng bởi: Thảo Meo - Lượt xem: 10438 17:43:53, 05/04/2018C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách lấy icon từ file hoặc process c#.

Nếu bạn nào muốn viết ứng dụng C# liệt kê tất cả tập tin lên listview

Trong listview được load từ một đường dẫn của folder, trong folder có nhiều tập tin như: txt, excel, word, image, pdf, dll...

Vậy làm sao để lấy được các icon của hệ thống, nếu file excel thì hiển thị icon của phần mềm Excel...

Rất đơn giản chúng ta chỉ cần sử dụng hàm bên dưới:

  var icon = Icon.ExtractAssociatedIcon(p.ExecutablePath);

với ExcuteablePath là đường dẫn chính xác đến tập tin.

Và dưới đây là giao diện demo ứng dụng lấy icon trong process đang chạy của Windows:

lay icon tu progress c#

Source code C#:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management;

namespace getIconFromProcess
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            var query = "SELECT ProcessId, Name, ExecutablePath FROM Win32_Process";
            using (var searcher = new ManagementObjectSearcher(query))
            using (var results = searcher.Get())
            {
                var processes = results.Cast().Select(x => new
                {
                    ProcessId = (UInt32)x["ProcessId"],
                    Name = (string)x["Name"],
                    ExecutablePath = (string)x["ExecutablePath"]
                });
                foreach (var p in processes)
                {
                    if (System.IO.File.Exists(p.ExecutablePath))
                    {
                        var icon = Icon.ExtractAssociatedIcon(p.ExecutablePath);
                        var key = p.ProcessId.ToString();
                        this.imageList1.Images.Add(key, icon.ToBitmap());
                        this.listView1.Items.Add(p.Name, key);
                    }
                }
            }
        }
    }
}

CHÚC CÁC BẠN THÀNH CÔNG!

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn lấy icon từ process
Đăng bởi: Thảo Meo - Lượt xem: 10438 17:43:53, 05/04/2018C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.