在WinXP下以服务模式添加工具栏图标,请高手指教(100分)

  • 主题发起人 主题发起人 fly_123
  • 开始时间 开始时间
F

fly_123

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个程序,运行后会在右下角的任务栏中添加一个图标,经过测试在window2000下以服务或exe运行正常,但是在XP下只能是以exe运行,以服务运行时添加图标失败(也不能找到桌面窗口),我的程序逻辑大概是这样的:<br> &nbsp; 1、用FindWindow('Progman',nil)找到桌面窗口,找到则进行下一步,否则退出;<br> &nbsp; 2、用Shell_NotifyIcon(NIM_Add, @FIconData)添加任务栏图标,其中FIconData定义如下:<br> &nbsp; &nbsp; &nbsp;with FIconData do begin<br> &nbsp; &nbsp; &nbsp; &nbsp;cbSize := SizeOf(FIconData);<br> &nbsp; &nbsp; &nbsp; &nbsp;Wnd := Self.Handle;<br> &nbsp; &nbsp; &nbsp; &nbsp;uID := $EEDB;<br> &nbsp; &nbsp; &nbsp; &nbsp;uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;<br> &nbsp; &nbsp; &nbsp; &nbsp;hIcon := Forms.Application.Icon.Handle;<br> &nbsp; &nbsp; &nbsp; &nbsp;uCallbackMessage := WM_MIDASICON;<br> &nbsp; &nbsp; &nbsp; &nbsp;StrCopy( szTip, PChar(Caption) );<br> &nbsp; &nbsp; &nbsp;end;<br> &nbsp; 经过检查,我发现以服务模式运行时,桌面找不到,如果跳过第一步,添加图标也会失败。请高手指点!不胜感激!!!
 
这个是在xp已经打开后,手工启动服务也会出现这样的情况,我怀疑是xp的桌面查找和2000不同,可能和用户名有关,即一个操作系统可能同时维护几个桌面(当然包括任务栏);
 
这个问题的例子就是scktsrvr,如果注册为服务,在xp下自动启动是没有图标的
 
后退
顶部