首先,将以下功能与-Message一起使用,以为PowerShell生成滑出敬酒通知。
function New-ToastMessage
{
<#
.SYNOPSIS
Displays a toast notification with a message and optional image.
.DESCRIPTION
Displays a toast notification with a message and optional image.
.PARAMETER message
The text message you want to display in your toast.
.PARAMETER ActionCentre
Send this to the action centre.
.PARAMETER image
An image that you wish to display alongside the message.
.EXAMPLE
New-ToastMessage -message "Alert: Disk Space Low (5%)" -image 'C:\Users\Robin\Documents\disk-low.png'
.EXAMPLE
New-ToastMessage -message "Alert: Disk Space Low (5%)" -image "C:\Users\Robin\Documents\disk-low.png" -ActionCenter
.NOTES
Author: Robin Malik
#>
param(
[Parameter(Mandatory = $true,HelpMessage = 'Toast Message?')]
[String]
$Message,
[Parameter(HelpMessage = 'Send to action centre')]
[Switch]
$ActionCentre,
[Parameter(Mandatory = $false,HelpMessage = 'Path to image?')]
[String]
$Image
)
$ErrorActionPreference = 'Stop'
$notificationTitle = [DateTime]::Now.ToShortTimeString() + ': ' + $Message
[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null
if($Image)
{
$templateType = 'ToastImageAndText01'
}
else
{
$templateType = 'ToastText01'
}
$template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::$templateType)
#Convert to .NET type for XML manipuration
$toastXml = [xml]$template.GetXml()
if($Image)
{
$toastXml.GetElementsByTagName('image').SetAttribute('src',$Image) > $null
$toastXml.GetElementsByTagName('image').SetAttribute('alt','overlay text') > $null
}
$toastXml.GetElementsByTagName('text').AppendChild($toastXml.CreateTextNode($notificationTitle)) > $null
#Convert back to WinRT type
$xml = New-Object -TypeName Windows.Data.Xml.Dom.XmlDocument
$xml.LoadXml($toastXml.OuterXml)
$toast = [Windows.UI.Notifications.ToastNotification]::new($xml)
$toast.Tag = 'PowerShell'
$toast.Group = 'PowerShell'
$toast.ExpirationTime = [DateTimeOffset]::Now.AddMinutes(5)
if($actioncentre)
{
$toast.SuppressPopup = $true
}
$notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('PowerShell')
$notifier.Show($toast)
}
Run Code Online (Sandbox Code Playgroud)
然后,您将能够在Windows 10设置>系统>通知和操作>从这些发件人获取通知下看到PowerShell。
单击PowerShell并启用“在操作中心显示通知”,如下所示:
最后,您可以使用-ActionCentre开关调用上述函数,然后将其发送到那里。
这是你可以使用的东西吗?https://technet.microsoft.com/en-us/library/ff730952.aspx
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon
$objNotifyIcon.Icon = "C:\Scripts\Forms\Folder.ico"
$objNotifyIcon.BalloonTipIcon = "Error"
$objNotifyIcon.BalloonTipText = "A file needed to complete the operation could not be found."
$objNotifyIcon.BalloonTipTitle = "File Not Found"
$objNotifyIcon.Visible = $True
$objNotifyIcon.ShowBalloonTip(10000)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5672 次 |
| 最近记录: |