Daftar Produk

[Visual Basic] Login Form With MySQL In Visual Studio
Lihat Detail

[Visual Basic] Login Form With MySQL In Visual Studio

Xin chào mọi người bài viết này mình sẽ hướng dẫn mọi người viết chương trình đăng nhập phân cấp theo từng cấp "Quản trị chương trình", "Người dùng", "Người giám sát",...v.v

Trong bài viết này tôi sẽ thảo luận về cách tạo biểu mẫu đăng nhập trong Visual Studio 2010. Hầu như tất cả các ứng dụng đều có Biểu mẫu đăng nhập, vì Biểu mẫu đăng nhập đóng vai trò là trình phát hiện quyền của người dùng sẽ nhập vào hệ thống. Hầu hết các ứng dụng trên toàn thế giới đều sử dụng quy trình đăng nhập trước tiên khi người dùng muốn nhập tài khoản của họ khi họ đã đăng ký như Facebook, Twitter, Instagram , v.v.

Được rồi, trước tiên hãy mở Visual Studio và tạo một dự án mới, sau đó bạn cần thiết lập cơ sở dữ liệu và bảng để kết nối với dự án của mình. Đọc bài viết trước về cách kết nối cơ sở dữ liệu MySQL với Visual Studio.

Và ở đây tôi có một bảng có tên là users và có ba trường trong đó. user, passstatus. Status ở đây tôi phân loại thành ba trường là Leader, CashierWarehouse Employee có quyền truy cập tương ứng.
Tiếp theo, mở Form1 (Login Form) sau đó thêm một số thành phần cần thiết như hình bên dưới.

Khi hoàn tất, hãy thêm một Form nữa làm Menu chính, Form này sẽ xuất hiện nếu quá trình đăng nhập thành công.

Các thành phần trong Form2:
  • Menu Dải
  • Trạng thái Dải
Thực hiện cấu hình trên StatusStrip, chúng ta chỉ cần hai panel sẽ hiển thị tên người dùng và trạng thái người dùng như hình dưới đây


Khi hoàn tất, hãy mở lại Form1 và nhập thư viện ODBC sau

Imports System.Data.Odbc
Public Class Form1
End Class

Sau đó, nhấp đúp vào Form1 và nhập mã sau vào Form1_Load

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
        
        Call koneksinya()
        cmd = New OdbcCommand("select * from users", conn)
        dr = cmd.ExecuteReader
        ComboBox1.Items.Add("Choose")
        ComboBox1.SelectedIndex = 0
        While dr.Read()
            ComboBox1.Items.Add(dr.Item("status"))
        End While

End Sub

Sau đó nhấp đúp vào nút Đăng nhập và nhập mã sau.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If TextBox1.Text = "" Or TextBox2.Text = "" Or ComboBox1.SelectedIndex = 0 Then
            MessageBox.Show("Complete All Fields")
        Else
            Call koneksinya()
            cmd = New OdbcCommand("select * from users where user = '" & TextBox1.Text & "' and pass = '" & TextBox2.Text & "' and status = '" & ComboBox1.Text & "'", conn)   
            dr = cmd.ExecuteReader
            dr.Read()
            If Not dr.HasRows Then
                MessageBox.Show("Login failed Check your username, password and status")
            Else
                Form2.Show()
                Form2.panel1.Text = "USER NAME : " + dr.Item("user")
                Form2.panel2.Text = "USER STATUS : " + dr.Item("status")
                If ComboBox1.Text = "LEADER" Then
                    Form2.BARANGToolStripMenuItem.Enabled = True
                    Form2.SUPPLIERToolStripMenuItem.Enabled = True
                    Form2.USERToolStripMenuItem.Enabled = True
                    Form2.GANTIPASSWORDToolStripMenuItem.Enabled = True
                    Form2.PENJUALANToolStripMenuItem.Enabled = False
                    Form2.PEMBELIANToolStripMenuItem.Enabled = False
                    Form2.LAPORANHARIANToolStripMenuItem.Enabled = True
                    Form2.LAPORANBULANANToolStripMenuItem.Enabled = True
                ElseIf ComboBox1.Text = "CASHIER" Then
                    Form2.BARANGToolStripMenuItem.Enabled = False
                    Form2.SUPPLIERToolStripMenuItem.Enabled = False
                    Form2.USERToolStripMenuItem.Enabled = False
                    Form2.GANTIPASSWORDToolStripMenuItem.Enabled = True
                    Form2.PENJUALANToolStripMenuItem.Enabled = True
                    Form2.PEMBELIANToolStripMenuItem.Enabled = False
                    Form2.LAPORANHARIANToolStripMenuItem.Enabled = False
                    Form2.LAPORANBULANANToolStripMenuItem.Enabled = False
                Else
                    Form2.BARANGToolStripMenuItem.Enabled = False
                    Form2.SUPPLIERToolStripMenuItem.Enabled = False
                    Form2.USERToolStripMenuItem.Enabled = False
                    Form2.GANTIPASSWORDToolStripMenuItem.Enabled = True
                    Form2.PENJUALANToolStripMenuItem.Enabled = False
                    Form2.PEMBELIANToolStripMenuItem.Enabled = True
                    Form2.LAPORANHARIANToolStripMenuItem.Enabled = False
                    Form2.LAPORANBULANANToolStripMenuItem.Enabled = False
                End If
                TextBox1.Clear()
                TextBox2.Clear()
                ComboBox1.SelectedIndex = 0
            End If
        End If
End Sub

Chương trình sẽ phát hiện nếu tên người dùng, mật khẩu và trạng thái để trống, một thông báo cảnh báo sẽ xuất hiện để điền vào tất cả các trường.
Nếu tất cả các trường đều được điền đầy đủ, chương trình sẽ so khớp tên người dùng, mật khẩu và trạng thái đã nhập cùng với nội dung của cơ sở dữ liệu.
Nếu không khớp, sẽ hiển thị thông báo cảnh báo đăng nhập không thành công, nếu phù hợp thì hiển thị trực tiếp Menu chính (Form2).
Đồng thời khi Menu chính xuất hiện, Tên người dùng Panel và Trạng thái Panel sẽ được điền theo Form đăng nhập trước đó.

Khi đó chương trình sẽ nhận dạng nếu Panel trạng thái được viết là LEADER thì chỉ có menu TRANSACTION không thể truy cập được, nếu là CASHIER thì chỉ có thể truy cập được là Sub Menu SALES và UTILIY, ngoài ra chỉ có thể truy cập được Sub Menu PURCHASE và UTILITY .

Ở đây bạn được tự do, hãy chỉ định quyền của người dùng theo menu bạn đã nhập

Và cuối cùng, nhấp đúp vào nút Thoát và nhập mã sau để đóng Biểu mẫu Đăng nhập

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)  
    Me.Close()
End Sub

Khi hoàn tất, chương trình đã sẵn sàng để chạy.

VIDEO DEMO.



Chúc mọi người thành công với thủ thuật trên.
Hỗ Trợ - Giải Đáp Thắc Mắc Chương Trình
Lihat Detail

Hỗ Trợ - Giải Đáp Thắc Mắc Chương Trình


Xin chào mọi người, bài viết này mình sẽ hỗ trợ giải đáp thắc mắc hay ý kiến lỗi từ chương trình do Team Hung.Pro.VN phát triển cho mọi người nhé, nếu đội ngủ chúng tôi chậm xữ lý cho mọi người có thể gọi điện trực tiếp số điện thoại hỗ trợ của chúng tôi trên chương trình để được giải đáp thắc mắc sự cố xữ lý sớm nhất cho người dùng nhé.
Mọi người có thể gửi bình luận tại bài viết này theo nội dung sau.
Tên Chương Trình:..........
Lỗi Chương Trình:..........
Nội Dung Mong Muốn:........
Email/SĐT nhận thông báo khi đội ngủ xữ lý xong.

Cảm ơn mọi người đã quan tâm.
[WINDOWS] MICROSOFT THỬ NGHIỆM PHIÊN BẢN OFFICE MIỄN PHÍ CÓ QUẢNG CÁO
Lihat Detail

[WINDOWS] MICROSOFT THỬ NGHIỆM PHIÊN BẢN OFFICE MIỄN PHÍ CÓ QUẢNG CÁO

Theo báo cáo từ Beebom, Microsoft đang âm thầm thử nghiệm một phiên bản Office miễn phí có quảng cáo trên hệ điều hành Windows, mở ra cơ hội tiếp cận bộ công cụ văn phòng quen thuộc cho nhiều người dùng hơn.

Phiên bản Office miễn phí này chỉ có sẵn trên nền tảng web và đi kèm với một banner quảng cáo luôn hiển thị ở bên phải màn hình. Người dùng cũng sẽ phải xem các video quảng cáo 15 giây sau mỗi vài giờ sử dụng. Ngoài ra, tất cả tài liệu sẽ phải được lưu trữ trên OneDrive thay vì lưu trữ cục bộ, điều này có thể gây bất tiện cho một số người dùng.

Mỗi ứng dụng trong bộ Office miễn phí này cũng sẽ bị cắt giảm một số tính năng. Ví dụ, Word sẽ không có công cụ vẽ, thiết kế và chức năng đọc chính tả. Excel sẽ không có định dạng có điều kiện và biểu đồ được đề xuất. PowerPoint sẽ mất tất cả các công cụ vẽ, hoạt ảnh và ghi âm, cùng nhiều tính năng khác.

Việc Microsoft thử nghiệm phiên bản này cho thấy công ty đang cân nhắc mở rộng khả năng tiếp cận bộ Office cho nhiều người dùng hơn, đặc biệt là những người không sẵn sàng trả phí cho phiên bản đầy đủ. Tuy nhiên, việc cắt giảm tính năng và hiển thị quảng cáo có thể khiến một số người dùng cảm thấy khó chịu. Liệu phiên bản Office miễn phí này có thực sự là một "món quà" hay chỉ là một các thức để khuyến khích người dùng nâng cấp lên phiên bản trả phí?
Theo báo cáo từ Beebom, Microsoft đang âm thầm thử nghiệm một phiên bản Office miễn phí có quảng cáo trên hệ điều hành Windows, mở ra cơ hội tiếp cận bộ công cụ văn phòng quen thuộc cho nhiều người dùng hơn.

Phiên bản Office miễn phí này chỉ có sẵn trên nền tảng web và đi kèm với một banner quảng cáo luôn hiển thị ở bên phải màn hình. Người dùng cũng sẽ phải xem các video quảng cáo 15 giây sau mỗi vài giờ sử dụng. Ngoài ra, tất cả tài liệu sẽ phải được lưu trữ trên OneDrive thay vì lưu trữ cục bộ, điều này có thể gây bất tiện cho một số người dùng.

Mỗi ứng dụng trong bộ Office miễn phí này cũng sẽ bị cắt giảm một số tính năng. Ví dụ, Word sẽ không có công cụ vẽ, thiết kế và chức năng đọc chính tả. Excel sẽ không có định dạng có điều kiện và biểu đồ được đề xuất. PowerPoint sẽ mất tất cả các công cụ vẽ, hoạt ảnh và ghi âm, cùng nhiều tính năng khác.

Việc Microsoft thử nghiệm phiên bản này cho thấy công ty đang cân nhắc mở rộng khả năng tiếp cận bộ Office cho nhiều người dùng hơn, đặc biệt là những người không sẵn sàng trả phí cho phiên bản đầy đủ. Tuy nhiên, việc cắt giảm tính năng và hiển thị quảng cáo có thể khiến một số người dùng cảm thấy khó chịu. Liệu phiên bản Office miễn phí này có thực sự là một "món quà" hay chỉ là một các thức để khuyến khích người dùng nâng cấp lên phiên bản trả phí?
[WINDOWS] Fix Lỗi Con Trỏ Chuột Bị Trắng Khi Lia Chuột
Lihat Detail

[WINDOWS] Fix Lỗi Con Trỏ Chuột Bị Trắng Khi Lia Chuột

Chào mọi người, bài viết này mình chia sẽ cho mọi người cách fix lỗi con chuột khi lia chuột bị trắng.

Chúng ta bắt đầu nhé.

Bước 1. Các bạn vào Registry
Để vào mục Registry các bạn nhán tổ hợp phím WINDOWS + R và nhập regedit và nhấn ENTER để vào Registry

Bước 2. Các bạn vào mục HKEY_LOCAL_MACHINE chọn SOFTWARE tiếp đó chọn Microsoft tiếp theo Windows và cuối cùng tìm Dwm như vậy các bạn đã vào được thư mục.

Bước 3. Các bạn nhấp chuột phải và chọn DWORD-32bit và tạo giá trị theo tên OverlayTestMode.

Bước 4. Các bạn nhấp đúp vào giá trị vừa tạo và thêm số 5 nếu các bạn chọn giá trị decimal hoặc 00000005 nếu các bạn chọn giá trị hexadecimal

Bước 5. Nhấn Ok và khởi động lại máy tính nhé.
Chúc mọi người thành công với thủ thuật này.
Chào mọi người, bài viết này mình chia sẽ cho mọi người cách fix lỗi con chuột khi lia chuột bị trắng.

Chúng ta bắt đầu nhé.

Bước 1. Các bạn vào Registry
Để vào mục Registry các bạn nhán tổ hợp phím WINDOWS + R và nhập regedit và nhấn ENTER để vào Registry

Bước 2. Các bạn vào mục HKEY_LOCAL_MACHINE chọn SOFTWARE tiếp đó chọn Microsoft tiếp theo Windows và cuối cùng tìm Dwm như vậy các bạn đã vào được thư mục.

Bước 3. Các bạn nhấp chuột phải và chọn DWORD-32bit và tạo giá trị theo tên OverlayTestMode.

Bước 4. Các bạn nhấp đúp vào giá trị vừa tạo và thêm số 5 nếu các bạn chọn giá trị decimal hoặc 00000005 nếu các bạn chọn giá trị hexadecimal

Bước 5. Nhấn Ok và khởi động lại máy tính nhé.
Chúc mọi người thành công với thủ thuật này.
[BLOGGER] Proximus Templates
Lihat Detail

[BLOGGER] Proximus Templates

Chào mọi người, hôm nay lại là chuyên mục Blogger, bài viết này mình chia sẽ đến mọi người một giao diện blogger có tốc độ tải trang nhanh, chuẩn seo, phụ hợp làm trang tin tức hay trang blog cá nhân tùy theo ý thích của mỗi người.

Ở mẫu giao diện này, người dùng có thể tùy biến thoải mái và theo sỡ thích của bản thân nhé.
 
Và mẫu giao diện này phù hợp nhất là việc đặt quảng cáo cho những anh chị em muốn treo quảng cáo kiếm thêm thu nhập và được tối giản phù hợp những vị trí thích ứng với việc click để việc treo quảng cáo hiệu quả hơn.

Demo - Download


Nếu mọi người cảm nhận thấy thích thì có thể tải về và áp dụng cho blog nhé, nếu gặp lỗi gì có thể bình luận dưới bài viết này để mình hỗ trợ người dùng sớm nhất.

Cảm ơn mọi người nhiều.
File Download Countdown Timer For Blogger
Lihat Detail

File Download Countdown Timer For Blogger

Chào mọi người, việc tạo thời gian chờ cho mục download đã được chia sẽ nhiều ở internet, và hôm nay ngồi mày mò code mình cũng tự viết ra được một đoạn code dạng đó.

Không dài dòng nữa chúng ta bắt đầu nhé.

Bạn có thể thêm đoạn code sau vào bài viết hoặc trang riêng của mọi người một cách thoải mái, và theo sự tùy biến theo khả năng của mọi người về việc làm website để phù hợp với tốc độ và giao diện của mọi người.

Full Code.

<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: center;"><span style="font-weight: 700;"><span style="color: #0c343d;"><br /></span></span></div>
<h3 style="font-weight: bold; text-align: center;"><b><span style="color: #0c343d;">Your download will begin in <span id="displaySeconds">10</span> seconds.</span></b></h3><script>
   var thoigian = 10; // sô dây đếm ngược.
   var giay; // Xử lý sự kiện đếm ngược.
   
   function start() {
    giay = setInterval(timer, 1000);
   }

   function timer() {
    // Hiển thị số giây còn lại trên trang web.
    var output = document.getElementById("displaySeconds");
    output.innerHTML = thoigian;
    
    // Giảm số giây còn lại đi một.
    thoigian--;
    
    // Kiểm tra xem bộ đếm đã về 0 chưa.
    if (thoigian < 0) { // Nếu bộ đếm đã đạt đến số 0...
     // dừng đếm ngược.
     clearInterval(giay);
     
     // bắt đầu truy cập vào trang đích.
     window.location.href = "Your-File-Download-Link-Paste-Here";
     return;
    }
   }  
   // Bắt đầu đồng hồ đếm ngược khi tải trang. 
   window.addEventListener("load", start, false);
  </script>
</div>

Ở phần mình bôi đỏ phía trên mọi người thay thế được link của các bạn vào nhé.

DEMO THỦ THUẬT

DEMO TIPS


Chào mọi người, việc tạo thời gian chờ cho mục download đã được chia sẽ nhiều ở internet, và hôm nay ngồi mày mò code mình cũng tự viết ra được một đoạn code dạng đó.

Không dài dòng nữa chúng ta bắt đầu nhé.

Bạn có thể thêm đoạn code sau vào bài viết hoặc trang riêng của mọi người một cách thoải mái, và theo sự tùy biến theo khả năng của mọi người về việc làm website để phù hợp với tốc độ và giao diện của mọi người.

Full Code.

<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: center;"><span style="font-weight: 700;"><span style="color: #0c343d;"><br /></span></span></div>
<h3 style="font-weight: bold; text-align: center;"><b><span style="color: #0c343d;">Your download will begin in <span id="displaySeconds">10</span> seconds.</span></b></h3><script>
   var thoigian = 10; // sô dây đếm ngược.
   var giay; // Xử lý sự kiện đếm ngược.
   
   function start() {
    giay = setInterval(timer, 1000);
   }

   function timer() {
    // Hiển thị số giây còn lại trên trang web.
    var output = document.getElementById("displaySeconds");
    output.innerHTML = thoigian;
    
    // Giảm số giây còn lại đi một.
    thoigian--;
    
    // Kiểm tra xem bộ đếm đã về 0 chưa.
    if (thoigian < 0) { // Nếu bộ đếm đã đạt đến số 0...
     // dừng đếm ngược.
     clearInterval(giay);
     
     // bắt đầu truy cập vào trang đích.
     window.location.href = "Your-File-Download-Link-Paste-Here";
     return;
    }
   }  
   // Bắt đầu đồng hồ đếm ngược khi tải trang. 
   window.addEventListener("load", start, false);
  </script>
</div>

Ở phần mình bôi đỏ phía trên mọi người thay thế được link của các bạn vào nhé.

DEMO THỦ THUẬT

DEMO TIPS


[C#] OVERLAY ICON IN WINDOWS 7 TASKBAR CSHAP
Lihat Detail

[C#] OVERLAY ICON IN WINDOWS 7 TASKBAR CSHAP

ô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é. 
ô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é. 
ô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é.