使用Shell_NotifyIcon添加任务托盘图标重复

superfireware 2012-08-04 11:58:58
创建一个服务,服务启动后在任务托盘显示程序图标,结果出现两个程序图标,添加图标的代码如下:

procedure TFrmMain.AddIconToTray;
begin
ZeroMemory(@IconData, SizeOf(TNotifyIconData));
IconData.cbSize := SizeOf(TNotifyIconData);
IconData.Wnd := Handle;
IconData.uID := 1;
IconData.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
IconData.uCallbackMessage := WM_TrayIcon;
IconData.hIcon := Application.Icon.Handle;
IconData.szTip := 'MediaPlayerService';
Shell_NotifyIcon(NIM_ADD, @IconData);
end;


请问是什么原因?
...全文
120 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsfzxjy 2012-08-08
  • 打赏
  • 举报
回复
有可能是上一个图标未删除,你查看一下
蓝色光芒 2012-08-06
  • 打赏
  • 举报
回复
检查该过程是否被执行了2次,加个ShowMessage就知道了
应该判断是否已经存在了,如果存在了就不再增加了,或者先删除再增加.

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧