#xml #windows #winforms #powershell #toast
#xml #Windows #winforms #powershell #всплывающее окно
Вопрос:
Я создал пользовательское всплывающее сообщение в Windows 10, которое мне нужно отображать, даже если для параметра focus assist установлено значение «Только аварийные сигналы». Похоже, что в центре обновления Windows параметр «Только аварийные сигналы» устанавливается по умолчанию, когда приложения переходят в полноэкранный режим, при дублировании дисплеев или при воспроизведении игр. Мне нужен способ либо обойти настройку «Только сигналы тревоги», либо отключить функцию focus assist с помощью скрипта.
Я попытался изменить параметр в групповой политике, как показано здесь: Управление Focus Assist в Windows 10
а также через реестр, как показано здесь: Как изменить автоматические правила Windows 10 «Тихие часы» (Focus Assist)
Ни один из этих методов, похоже, не влияет. Ниже приведен мой сценарий Powershell, который используется для создания всплывающего сообщения:
param(
[String] $Msg1,
[String] $Logo1
)
function test
{
[void][Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime]
[void][Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime]
[void][Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime]
$App_ID = 'windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel'
$template = @"
<toast scenario="alarm">
<visual>
<binding template="ToastGeneric">
<text id="1">$("$Msg1")</text>
<image placement="appLogoOverride" src="$Logo1"/>
</binding>
</visual>
</toast>
"@
$xml = New-Object Windows.Data.Xml.Dom.XmlDocument
$xml.LoadXml($template)
$test = New-Object Windows.UI.Notifications.ToastNotification $xml
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($APP_ID).Show($test)
}
if ($Msg1) {test}
Всплывающее сообщение должно отображаться при запуске скрипта, передающего ему -Msg1 ‘This is a test’. Вместо этого он не отображается и его можно увидеть только в центре действий.
Кто-нибудь смог отобразить всплывающее уведомление независимо от настройки focus assist (тихие часы)? Или кто-нибудь знает способ отключить focus assist с помощью скрипта, который, похоже, работает (это должно быть сделано без взаимодействия с пользователем)?