Application server VCL 框架下 如何使用 TTrayIcon?

lserssss 2011-11-07 07:14:52
我建立了一个VCL服务框架,并拖入了一个TTrayIcon 组件, 在服务启动后,我在启动后的事件函数中,写了这么一句话,
TrayIcon1->visible = ture;

启动服务后,报错 cannot create shell notification icon,出错行正是上面这行代码。

我试了在非服务器框架的应用程序中,就不会出现这个问题。

请问大虾们,有没有遇到过和我一样问题的?是怎么解决的? 谢谢。
...全文
126 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzbinfo 2011-11-08
  • 打赏
  • 举报
回复
你把放到什么地方了??你不要给我说你放到unit1。cpp这个单元的界面上去了啊。
lserssss 2011-11-08
  • 打赏
  • 举报
回复
全程就是这样。我在winxp/2008的环境 都试过。不行。
lserssss 2011-11-08
  • 打赏
  • 举报
回复
我用的BCB2007。创建了一个Service Application 框架的程序,然后拖入了TTrayIcon和TTime,我在左边的属性栏中设置了Interactive 为true。 然后我在TTime的事件响应函数中,增加依据代码
Sleep(1000*10) //休息10秒,主要是为了attach到服务进程进行调试。
TrayIcon1->visible =true;(我手工增加的就这一句代码)。

程序运行:启动服务。attach到服务,单步执行过TrayIcon1->visible =true;报错。。
lserssss 2011-11-08
  • 打赏
  • 举报
回复
是同一个人
zzbinfo 2011-11-08
  • 打赏
  • 举报
回复
你跟另一个问同样问题的是同一个人吧??
zzbinfo 2011-11-08
  • 打赏
  • 举报
回复
你的代码贴一下看看呢,你用的c++builder是什么版本的。我用2010试了一下没有你说的这个问题呀。
你的服务是否设置了“允许服务与桌面交互”
lserssss 2011-11-08
  • 打赏
  • 举报
回复
谁有用TTrayIcon带托盘的系统服务的例子?发给我一下,谢谢。我的邮箱是lsers@126.com
lserssss 2011-11-08
  • 打赏
  • 举报
回复
cannot create shell notification icon 这句报错的原因是什么? 知道原因才有解决方案。
lserssss 2011-11-08
  • 打赏
  • 举报
回复
我搜索了一下,没有搜到啊。。。知道怎么做吗?
zzbinfo 2011-11-08
  • 打赏
  • 举报
回复
你搜一下带窗体的服务程序试试看有帮助么原来写这种东西的时候,综合考虑是服务和管理分开做了。
zzbinfo 2011-11-08
  • 打赏
  • 举报
回复
又给你发了一遍,结了吧
lserssss 2011-11-08
  • 打赏
  • 举报
回复
bobo,在吗?
lserssss 2011-11-08
  • 打赏
  • 举报
回复
你收下邮件,我准备把这个帖子结了,我们线下聊吧。
zzbinfo 2011-11-08
  • 打赏
  • 举报
回复
发过了,你试试看,估计还是不行,应该不是版本的问题
lserssss 2011-11-08
  • 打赏
  • 举报
回复
我是想的是TTrayIcon这个组件 应用于2008。在更高级的BCB中应该有所支持。 倘若测试通过,那也就确定了问题的原因,下载最新的编译器即可解决。我相信应该是解决方案,现在只能试。
lserssss 2011-11-08
  • 打赏
  • 举报
回复
倘若是系统的原因的话,那就意味win2008上的系统服务不允许有托盘?或者说不允许与桌面交互? windows2008上, 服务-》属性-》登陆-》设置“与桌面交互”这个选项依然存在啊。
lserssss 2011-11-08
  • 打赏
  • 举报
回复
你编译一个给我吧,我来测试。我只有BCB2007
zzbinfo 2011-11-08
  • 打赏
  • 举报
回复
应该不是编译器版本的问题,而是系统的原因,win2008是真正的服务器操作系统,特别是多任务多用户跟xp不可同日而语。[Quote=引用 13 楼 lserssss 的回复:]
我用的是BCB2007,我在想是不是不兼容win2008? 你能否用高版本的编译一个程序发给我,我放到2008上试试 看能否出图标?我的邮箱是lsers@126.com
[/Quote]
lserssss 2011-11-08
  • 打赏
  • 举报
回复
没错,我就是这样做的,新加的窗体,然后把TtrayIcon放入新的窗体。 在WinXP上可以了,但是Win2008不行。
zzbinfo 2011-11-08
  • 打赏
  • 举报
回复
我这里没有win2008,没法测试,你新加个窗体,把TTrayIcon 放到这个窗体试试看。但是不建议在服务程序里面加窗体,因为窗体的消息循环占用的是服务进程的主循环(这个你可以验证一下)。一般都是服务和交互分开,做两部分。
加载更多回复(3)

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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