Cách tạo kiểu thông báo bong bóng (Balloon) sử dụng PowerShell

Microsoft bổ sung trên phiên bản Windows 10 Powershell với nhiều khác biệt so với Command Prompt, một tiện ích dòng lệnh đã quá cũ kĩ.  Để thấy được sự khác biệt, bạn tham khảo bài viết so sánh Command Prompt và PowerShell tại đây.

Với Powershell, bạn có thể dễ dàng tạo kiểu thông báo bong bóng balloon sử dụng Powershell theo hướng dẫn dưới đây.

Thông báo phổ biến nhất trong PowerShell là văn bản lưu trữ trên máy chủ lưu trữ, sử dụng bất kỳ lệnh Write- * cmdlet để ghi văn bản vào bảng điều khiển . Các thông báo lỗi hoặc cảnh báo sẽ là các lệnh Write-Error cmdlet hoặc Write-Warning cmdlet, sử dụng lệnh Write-Host thông thường để cho bạn biết khi nào một quá trình nào đó hoặc một thứ gì đó được hoàn thành.

Ngoài bảng điều khiển, đôi khi cách tiếp cận khác để thu hút sự chú ý của người dùng nếu một cái gì đó được hoàn tất hoặc một lỗi gì đó xảy ra, trên màn hình sẽ hiển thị một cửa sổ popup để thông báo cho người dùng. Điều này được thực hiện bằng cách sử dụng System.Windows.MessageBox và sử dụng phương pháp thích hợp để hiển thị thông báo cho người dùng.

Cả 2 kiểu thông báo trên đều hữu ích và cung cấp phản hồi cho người dùng khi cần thiết. Tuy nhiên ngoài ra còn một kiểu thông báo khác đó là kiểu thông báo bong bóng (Balloon).

Hầu hết người dùng đều quá quen thuộc với kiểu thông báo bong bóng, đặc biệt là với các thông báo cập nhật Windows update.

Kiểu thông báo bong bóng này chủ yếu trên Windows 7, nhưng vẫn hoạt động trên Windows 10.

Vậy làm sao để tạo kiểu thông báo bong bóng (Balloon)? Tin vui là bạn không cần phải đào sâu để truy cập loại giao diện thông báo này. Tức là không cần tạo WPF với XAML hoặc đào sâu vào Windows Forms để xây dựng bất kỳ thứ gì.

Thay vào đó bạn chỉ cần làm việc với System.Windows.Forms.NotifyIcon để tạo kiểu thông báo bong bóng (Balloon) sử dụng PowerShell. Lưu ý bạn sẽ phải thêm System.Windows.Forms assembly vào phiên làm việc PowerShell trước khi có thể sử dụng lớp NotifyIcon.

Như đã đề cập ở trên, bước đầu tiên bạn cần làm là tải System.Windows.Forms assembly vào phiên làm việc PowerShell trước:

Add-Type -AssemblyName System.Windows.Forms

Bằng cách này bạn có thể tạo object NotifyIcon đầu tiên và kiểm tra các thuộc tính và phương pháp của nó.

$global:balloon = New-Object System.Windows.Forms.NotifyIcon

Bước tiếp theo là tạo kiểu thông báo bong bóng (balloon).

Get-Member -InputObject $Global:balloon

Có rất nhiều thuộc tính và phương pháp kèm theo các event hữu ích cho việc xử lý biểu tượng chú giải trong khay hệ thống, một trong số đó là event MouseDoubleClick.

Trước khi bắt đầu quá trình thiết lập thuộc tính để tạo kiểu thông báo bong bóng (balloon), tiến hành tạo event handler sử dụng để loại bỏ biểu tượng trên khay hệ thống khi người dùng kích đúp chuột vào biểu tượng.

[void](Register-ObjectEvent -InputObject $balloon -EventName MouseDoubleClick -SourceIdentifier IconClicked -Action {

#Perform cleanup actions on balloon tip

$global:balloon.dispose()

Unregister-Event -SourceIdentifier IconClicked

Remove-Job -Name IconClicked

Remove-Variable -Name balloon -Scope Global

})

Từ giờ khi người dùng kích đúp chuột vào biểu tượng, biểu tượng đó sẽ được loại bỏ bằng cách loại bỏ object NotifyIcon cũng như xử lý event.

Bước tiếp theo bây giờ là bắt đầu xây dựng các object bằng cách thiết lập một số thuộc tính. Đầu tiên là thiết lập biểu tượng khay hệ thống PowerShell ISE bằng cách chỉ định đường dẫn thông qua Get-Process và chỉ định thuộc tính Path.

Sau khi có đường dẫn, bước tiếp theo là trích xuất biểu tượng từ file để áp dụng biểu tượng đó cho thuộc tính Icon.

$path = (Get-Process -id $pid).Path

$balloon.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)

Sử dụng cách tiếp cận này bạn có thể kéo bất kỳ một biểu tượng từ file và sử dụng làm biểu tượng khay hệ thống kiểu thông báo bong bóng được mở.

Nếu muốn bổ sung thêm biểu tượng trong kiểu thông báo bong bóng tương tự như những gì mà bạn nhìn thấy trong thông báo Windows update. Để làm được điều này, bạn sẽ phải tìm biểu tượng thích hợp bằng cách xem các thành viên tĩnh của lớp System.Windows.Forms.ToolTipIcon.

[System.Windows.Forms.ToolTipIcon] | Get-Member -Static -Type Property

Bạn có thể sử dụng Warning ToolTipIcon cho kiểu thông báo này.

$balloon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning

Tiếp theo là đặt một tiêu đề và thông báo sẽ được hiển thị trong kiểu thông báo bong bóng.

$balloon.BalloonTipText = 'What do you think of this balloon tip?'

$balloon.BalloonTipTitle = "Attention $Env:USERNAME"

Cuối cùng là thiết lập Visible của kiểu thông báo bong bóng thành $True:

$balloon.Visible = $true

Để hiển thị kiểu thông báo bong bóng này, bạn sẽ gọi phương thức ShowBalloonTip. Có một vài bộ tham số mà bạn có thể sử dụng.

Trong trường hợp này là chỉ định một số nguyên thông báo thời gian, theo đơn vị là mili giây, thông báo sẽ hiển thị trên khay hệ thống. Chẳng hạn nếu hiển thị thông báo trong 5 giây, tương đương với 500 mili giây khi gọi ShowBalloonTip.

$balloon.ShowBalloonTip(5000)

Sau khi thực hiện xong, chỉ cần kích đúp chuột và biểu tượng PowerShell ISE mà bạn đã sử dụng để đóng biểu tượng lại.

Ngoài ra bạn có thể sử dụng chức năng có tên gọi là Invoke-BalloonTip (bạn có thể tìm trên trang GitHub) để tạo kiểu thông báo bong bóng (balloon) dễ dàng hơn. Sau khi tải về, bạn có thể chạy Invoke-BalloonTip bằng lệnh đưới đây:

Invoke-BalloonTip -Message 'This is a message from my function' -Title 'Attention!' -MessageType Info

Trên đây Taimienphi.vn vừa hướng dẫn bạn cách tạo kiểu thông báo bong bóng (Balloon) sử dụng PowerShell. Hy vọng sau bài viết này bạn đã biết cách để tạo kiểu thông báo bong bóng (balloon) trên máy tính Windows của mình.

PowerShell là một trình tiện ích dòng lệnh mới của Microsoft. Nếu muốn bạn có thể sử dụng PowerShell để tạo các cảnh báo khi xảy ra sự cố, chẳng hạn như script hoàn tất hoặc sự cố được phát hiện trong một truy vấn. Trong bài viết này Taimienphi.vn sẽ hướng dẫn bạn cách tạo kiểu thông báo bong bóng (Balloon) sử dụng PowerShell.
Cách tạo hình bong bóng nước trong Photoshop
Tạo Restore Point trên Windows 10 sử dụng PowerShell
Cách xem thời tiết trên Win 10 bằng lệnh PowerShell
Cách triển khai SQL Server thông qua PowerShell DSC
Các lệnh PowerShell hay
Cách tạo thư mục ảo (Virtual Directory) trong ứng dụng Azure Web bằng PowerShell

ĐỌC NHIỀU