BomKhung.Com Đã Quay Trở Lại
Hoạt Động Dưới Tên Miền Hung.Pro.VN
00 Days
00 Hours
00 Minutes
00 Seconds
Hiện website đang cập nhật nội dung bài viết, nếu có lỗi gì mọi người có thể thông báo cho mình Tại đây!

[CSHARP] OVERLAY ICON IN WINDOWS 7 TASKBAR

ôm nay, mình xin hướng dẫn cho các một tuts về cách tạo Overlay Icon Real time của ứng dụng dưới thanh taskbar trong lap trinh csharp.

Chắc bạn bạn đã từng thấy, khi các bạn chạy ứng dụng sẽ có một icon ứng dụng của bạn hiển thị ở thanh taskbar bên dưới. Các bạn nào đang sử dụng ứng dụng facebook hoặc zalo.

Khi các bạn nhận được một tin nhắn mới thì phía dưới icon ứng dụng của bạn xuất hiện thêm các số 1-n, theo số tin nhắn mới mà bạn chưa đọc.
 
Hoặc khi các bạn download, các bạn để ý dưới thanh taskbar cũng có 1 progress chạy theo.
Để làm được vấn đề đó, mình sẽ hướng dẫn các bạn sử dụng thư viện Microsoft.WindowsAPICodePack.Taskbar. Thư viện này sẽ hỗ trợ cho chúng ta làm được những việc mà mình vừa nói trên.

Giao diện Demo ứng dụng Overlay Icon Taskbar in Lap trinh csharp

+ Đầu tiên mình xin hướng dẫn các bạn cài đặt thư viện WindowsAPICodePack.
Các bạn mở cửa số command line của Nuget, sau đó gõ lệnh cài đặt như sau:
PM>Install-Package Microsoft.WindowsAPICodePack-Shell

Sau khi cài đặt xong các bạn tiến hành import thư viện vào để sử dụng.
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.WindowsAPICodePack.Taskbar;
using System.Threading;
using System.Runtime.InteropServices;
using System.Security.Permissions;

* Có một vấn đề mình xin lưu ý với các bạn, ứng dụng này chỉ sử dụng trên trên Windows Vista trở lên mới sử dụng được nhé.
Các bạn có thể dùng hàm dưới đây để kiểm tra, nếu Operation mà chúng ta đang sử dụng dưới Windows Vista thì ko chạy ứng dụng
private void Form1_Load(object sender, EventArgs e)
        {
            if (!TaskbarManager.IsPlatformSupported)
            {
                MessageBox.Show("Overlay Icon không hỗ trợ cho hệ thống của bạn" + Environment.NewLine + " Chỉ hỗ trợ từ windows 7 trở lên.");

                // Exit the current process
                Application.Exit();
            }
        }

- Tiếp đến các bạn viết hàm chọn sự kiện chọn Icon thì overicon dưới thanh taskbar bằng lập trình C#
private void ShowOrHideOverlayIcon()
        {            
            if (checkBox1.Checked)
            {
                Icon icon = null;
              
                switch (comboBox1.SelectedIndex)
                {
                    case 0:
                        icon = Icon.FromHandle(Properties.Resources.GreenToy.GetHicon());
                        break;
                    case 1:
                        icon = Icon.FromHandle(Properties.Resources.NinjaToy.GetHicon());
                        break;
                    case 2:
                        icon = Icon.FromHandle(Properties.Resources.BlueToy.GetHicon());
                        break;
                    default:
                        MessageBox.Show("Vui lòng chọn Icon Overlay!");
                        break;
                }
               
                TaskbarManager.Instance.SetOverlayIcon(icon, comboBox1.SelectedIndex.ToString());
            }
            else               
                TaskbarManager.Instance.SetOverlayIcon(null, null);

        }

- Tiếp đến là mình viết hàm cho progress bar khi change combox để hiển thị progress
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            int max = 25;
            var prog = Microsoft.WindowsAPICodePack.Taskbar.TaskbarManager.Instance;           
          
            if(comboBox2.SelectedIndex == 0)
            {
                prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Normal);
            }else if(comboBox2.SelectedIndex == 1)
            {
                prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Error);
            }
            else if(comboBox2.SelectedIndex == 2)
            {
                prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Paused);
            }
            else if(comboBox2.SelectedIndex == 3)
            {
                prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.NoProgress);
            }
            else
            {
                prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Indeterminate);
            }
            for (int i = 0; i < max; i++)
            {
                prog.SetProgressValue(i, max);
                Thread.Sleep(100);
            }

        }

Vậy là xong chúc cấc bạn thành công với thủ thuật hay này cho ứng dụng của mình phát triển nhé. 

Đăng nhận xét

Đồng ý sữ dụng cookie
Chúng tôi sử dụng cookie trên trang web này để phân tích lưu lượng truy cập, ghi nhớ tùy chọn của bạn và tối ưu hóa trải nghiệm của bạn.
Xem thêm
Oops!
Có vẻ như kết nối internet của bạn có vấn đề. Vui lòng kết nối lại và duyệt web.
AdBlock Detected!
Chúng tôi phát hiện bạn đang sử dụng plugin chặn quảng cáo trong trình duyệt của mình.
Doanh thu chúng tôi kiếm được từ quảng cáo được sử dụng để quản lý trang web này, chúng tôi yêu cầu bạn đưa trang web của chúng tôi vào danh sách trắng trong plugin chặn quảng cáo của bạn.
Site is Blocked
Sorry! This site is not available in your country.
Kỹ thuật số thế hệ tiếp theo Chào mừng bạn đến với trò chuyện WhatsApp
Xin chào! Chúng tôi có thể giúp gì cho bạn hôm nay?
Nhập vào đây...