Как я могу обойти настройку аварийного сигнала focus assist для всплывающих сообщений?

#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 с помощью скрипта, который, похоже, работает (это должно быть сделано без взаимодействия с пользователем)?