Как позволить уведомлению тоста оставаться в Центре действий 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.Выиграть.Уведомление и измените его на свои потребности.