i havent seen anything on the forums for this... i wanna make a quick clean app that hides an icon of a program from the taskbar by the system clock.. like say the AOL instant messenger icon.... how would i begin to make the icon disppear ... i know to make the start button is something like

.data?
buffer db 127 dup(?)

.data
shelltray db "Shell_TrayWnd",0
startbutt db "BUTTON",0
child dd ?
slength dd ?

.code
invoke FindWindow,addr shelltray,NULL
mov tray, eax
invoke GetWindow,tray, GW_CHILD
mov child, eax
.if child != 0
invoke GetClassName,child,offset buff, sizeof buff
.if eax > 0
invoke lstrlen, offset buff
mov slen,eax
invoke CharUpperBuff,offset buff,slen
invoke lstrcmp,addr buff, addr startbutt
.if eax == 0
invoke ShowWindow,child,SW_HIDE ; Hide Button
.endif
.endif
.endif


is it something similar to this.. do i have to get the icon's id or something?
Posted on 2002-10-15 23:15:57 by illwill
The way to modify an icon in that area is to call Shell_NotifyIcon, with a message of NIM_MODIFY, then in your NOTIFYICONDATA struct you specify a new icon. The trouble is, you also need to specify an hWnd and an ID of the current icon so the shell knows which one to change, and to my knowledge there is no way to enumerate the icons in the system tray.

The only other way to do this is to hook the Shell_NotifyIcon import of the process you want to affect, but that is getting into the realms of reverse engineering.
Posted on 2002-10-16 20:19:20 by sluggy