Как позволить уведомлению тоста оставаться в Центре действий Windows 10 С Delphi

Я использую Delphi 10.2 в Windows 10. Ниже приведен пример кода, предоставленного Embarcadero.

после выполнения этого кода уведомление исчезает и deosn не остаться в центре. Как я могу допустить, чтобы она там застряла?

procedure TNotify.btnShowClick(Sender: TObject);
var
  MyNotification: TNotification;
begin
  MyNotification := NotificationCenter1.CreateNotification;
  try
    MyNotification.Name := 'Windows10Notification';
    MyNotification.Title := 'Windows 10 Notification #1';
    MyNotification.AlertBody := 'RAD Studio 10 Seattle';

    NotificationCenter1.PresentNotification(MyNotification);
  finally
    MyNotification.Free;
  end;
end;

добавлено: после включения переключателя настройки Windows > Система > Уведомления и действия, которые я вижу HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionNotificationsSettingsEmbarcadero.DesktopToasts.0579D43AShowInActionCenter равно 1. Но каждый пользователь, который будет использовать это приложение не может делать это все время вручную, и я не могу предсказать имя ключ.

1 ответов


вы найдете ответ здесь: сценарий powershell создает уведомление Windows 10 и исчезает после всплывающего окна

вы должны зарегистрировать приложение для " показывать уведомления в центре действий" "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\$prodName" - имя " ShowInActionCenter "- введите Dword-значение"1"

чтобы получить $prodName используйте:

function TNotificationsForm.getRegisterToastMessageKey : String;
const
  AppId = 'Embarcadero.DesktopToasts.';
begin
  result := AppId + THashBobJenkins.GetHashString(ParamStr(0));
end;

Embarcadero не сделал хорошую работу здесь, но так что вы получите Ключ, или сделать копию из unit System.Выиграть.Уведомление и измените его на свои потребности.