For button colors depending on program, try this approach: Use autorun command list entry to set the button color when the program starts. At the same time, create an event (if it does not already exist) which monitors to see if the program is still running. If it is not, change the color to not-running. Set the event timing to anywhere between 1-4 seconds depending on your tradeoff of responsiveness versus CPU usage.
The advantage is that you are not checking for every possibility each second. You only check for programs which are already running to see if they are stopped. A totally different approach is to use a hookwindows event to set the color only when a program starts or stopped. However, these hooks may not be reliable on your system. In either case, you should also try cl function rather than format item; it may be faster. A final point. It is not clear from your note if you set the color each second. If you do not want to try one of the above, you may want to make sure your logic is something like if (the program is not running and color is for running) do change the color to not running else if (the program is running and color is for not running) check the color to running endif The point is to only change the color when you have to; if you change every second you are needlessly redrawing the bar. For mute, the only thing I can think of is to use a PowerPro button to control mute state as well as color. >
