What I would do is:

o   The tray icon loads your server.
o   The tray icon also loads your client
o   If the client is supposed to be 'hidden' the _tray_icon_ hides the
client GUI (the GUI doesn't do it itself).  This will leave the client
running, just not doing anything since the window is now invisible to the
user.  This is the 'tray' mode.
o   When the tray icon is double clicked (or whatever) the _tray_icon_
unhides the GUI.  It can easily do this if it knows what the title bar of
the GUI window is.  However it is possible to unhide a window even if you
only know what process created it (and we do! since we loaded the client!)
[Freenet.exe does something similar when it needs to stop the freenet node -
it finds which window is the GUI node even though it is hidden, and sends it

Reply via email to