Microsoft đã bổ sung Powershell vào Windows 10 với nhiều sự khác biệt so với Command Prompt, một công cụ dòng lệnh cũ kỹ. Để thấy rõ sự khác biệt, bạn có thể đọc bài so sánh giữa Command Prompt và PowerShell tại đây.
Với Powershell, bạn có thể tạo dễ dàng kiểu thông báo bong bóng balloon theo hướng dẫn dưới đây.
Trong PowerShell, thông báo phổ biến nhất thường là văn bản được lưu trữ trên máy chủ, sử dụng 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 được tạo bằng các lệnh Write-Error cmdlet hoặc Write-Warning cmdlet. Lệnh Write-Host thường được sử dụng để thông báo khi một quá trình nào đó hoặc một công việc nào đó được hoàn thành.
Ngoài việc hiển thị trên bảng điều khiển, có một cách tiếp cận khác để thu hút sự chú ý của người dùng khi một sự kiện nào đó hoặc một lỗi xảy ra. Đó là hiển thị một cửa sổ popup trên màn hình, sử dụng System.Windows.MessageBox và phương pháp thích hợp để thông báo cho người dùng.
Cả hai 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. Tuy nhiên, kiểu thông báo bong bóng (Balloon) cũng là một lựa chọn khác.
Đa số người dùng đã quen 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 từ Windows update.
Kiểu thông báo bong bóng này chủ yếu xuất hiện trên Windows 7, nhưng vẫn có thể sử dụng trên Windows 10.
Cách để tạo kiểu thông báo bong bóng (Balloon) là khá đơn giản. Bạn không cần phải mất công đào sâu vào giao diện người dùng, không cần tạo WPF với XAML hay phải làm quá nhiều với Windows Forms.
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) thông qua PowerShell. Lưu ý rằng bạn cần thêm System.Windows.Forms assembly vào phiên làm việc PowerShell trước khi sử dụng lớp NotifyIcon này.
Như đã đề cập ở trên, bước đầu tiên bạn cần thực hiện là tải System.Windows.Forms assembly vào phiên làm việc PowerShell của bạn:
Import-Module System.Windows.Forms
Dùng lệnh trên, bạn có thể tạo đối tượng NotifyIcon đơn giản và kiểm tra các thuộc tính cũng như phương thức của nó.
$global:balloon = New-Object System.Windows.Forms.NotifyIcon
Tiếp theo, chúng ta sẽ bắt đầu quá trình tạo kiểu thông báo bong bóng (balloon).
Get-Member -InputObject $Global:balloon
Có nhiều thuộc tính và phương pháp hữu ích khi xử lý biểu tượng chú giải trong khay hệ thống, trong đó có event MouseDoubleClick.
Trước khi thiết lập thuộc tính để tạo kiểu thông báo bong bóng (balloon), tạo event handler để xử lý sự kiện 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 {
#Thực hiện các hành động dọn dẹp trên mẹo thông báo bóng bóng
$global:balloon.Dispose()
Unregister-Event -SourceIdentifier IconClicked
Remove-Job -Name IconClicked
Remove-Variable -Name balloon -Scope Global
})
Từ bây 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 xóa đối tượng NotifyIcon cũng như xử lý sự kiện.
Bước tiếp theo là bắt đầu xây dựng các đối tượng 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à rút trích biểu tượng từ tệp để sử 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)
Bằng cách tiếp cận này, bạn có thể chọn bất kỳ biểu tượng từ tệp và sử dụng nó làm biểu tượng trong khay hệ thống cho kiểu thông báo bong bóng mà bạn mở ra.
Nếu bạn muốn thêm biểu tượng vào kiểu thông báo bong bóng giống như trong thông báo cập nhật Windows. Để làm điều này, bạn cần tìm kiế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, đặt một tiêu đề và nội dung để hiển thị trong kiểu thông báo bong bóng.
$balloon.BalloonTipText = 'Bạn nghĩ sao về mẹo bóng bóng này?'
$balloon.BalloonTipTitle = 'Chú ý $Env:USERNAME'
Cuối cùng, 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, gọi phương thức ShowBalloonTip với một số tham số tùy chọn.
Trong trường hợp này, chỉ cần đặt một số nguyên làm tham số, đơn vị là mili giây. Thông báo sẽ xuất hiện trên khay hệ thống trong 5 giây, tương đương với 5000 mili giây khi gọi ShowBalloonTip.
$balloon.ShowBalloonTip(5000)
Sau khi hoàn thành, chỉ cần kích đúp chuột vào biểu tượng PowerShell ISE bạn đã sử dụng để đóng nó lại.
Hơn nữa, bạn cũng có thể tận dụng chức năng có tên Invoke-BalloonTip (bạn có thể tìm kiếm trên trang GitHub) để tạo kiểu thông báo bong bóng (balloon) một cách thuận tiện. Sau khi tải về, thực hiện lệnh sau:
Invoke-BalloonTip -Message 'Đây là một thông báo từ chức năng của tôi' -Title 'Chú ý!' -MessageType Info
Ở đây, Mytour đã hướng dẫ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 chạy hệ điều hành Windows của bạn.
