我在Windows 10中使用Delphi 10.2。以下代码是Embarcadero提供的示例代码。
运行此代码后,通知消失,并且无法停留在操作中心。我怎么能让它落在那里?
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;
ADDED:打开Windows设置>的切换后系统>通知&动作我可以看到HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \通知\设置\ Embarcadero.DesktopToasts.0579D43A \ ShowInActionCenter是1,但谁可以使用这个应用程序的每个用户可以'吨手动做这一切的时候,我不能预测密钥的名称。
答案 0 :(得分:4)
你会在这里找到答案: powershell script creates Windows 10 notification and it disappears after popup
您必须注册“在行动中心显示通知”的申请 “HKCU:\ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Notifications \ Settings \ $ prodName” - Name“ShowInActionCenter” - Type Dword -Value“1”
要使用$ prodName:
function TNotificationsForm.getRegisterToastMessageKey : String;
const
AppId = 'Embarcadero.DesktopToasts.';
begin
result := AppId + THashBobJenkins.GetHashString(ParamStr(0));
end;
Embarcadero在这里做得不好,但是你得到了钥匙, 或者从System.Win.Notification单元制作副本并根据需要进行更改。