如何发送一个没有通知图标的气泡通知?

2021-02-26 16:27:06 +08:00
 Kasumi20

怎么搞这都有一个黑色的图标,难受

代码:

NOTIFYICONDATAW nid = {};
nid.cbSize = sizeof nid;
nid.hWnd = hwnd;
nid.uID = IDNI_BALLOON;
nid.uFlags = NIF_INFO | NIF_MESSAGE;
nid.dwInfoFlags = NIIF_INFO;
lstrcpy(nid.szInfoTitle, L"气泡通知");
lstrcpy(nid.szInfo, L"这是一条气泡通知");
nid.uCallbackMessage = WM_USER;

Shell_NotifyIconW(NIM_ADD, &nid);
2647 次点击
所在节点    Windows
9 条回复
USAA
2021-02-26 16:46:12 +08:00
ShowBalloonTip
Kasumi20
2021-02-26 17:10:27 +08:00
@USAA 想知道 C#底层怎么实现的,肯定还是调用 Shell_NotifyIconW
pkoukk
2021-02-26 17:46:01 +08:00
lujjjh
2021-02-26 20:53:31 +08:00
Shell_NotifyIconW(NIM_ADD, &nid);
Shell_NotifyIconW(NIM_DELETE, &nid);

加完就删。

但是在 Win7 上估计会比较奇怪,以前的样式是有个箭头指向通知区域图标的。
Kasumi20
2021-02-26 20:57:51 +08:00
@lujjjh 删除或者修改 szInfo 为空串都会让提示立即消失的
lujjjh
2021-02-26 21:22:03 +08:00
@Kasumi20 我测试下来没有复现。如果考虑抛弃 Win7- 的话,可以用 UWP 的 API,也具备更多的能力

https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop-cpp-wrl

不过对 C++ 不太友好,需要自己注册 COM server
ho121
2021-02-26 21:27:56 +08:00
Kasumi20
2021-02-26 22:29:40 +08:00
@ho121 谢谢,我好像明白了
Tumblr
2021-03-01 12:25:15 +08:00
PowerShell 有个 module 叫 BurntToast,可以借鉴。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/756540

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX