Jump to content

How to hide Windows tray icon?


Tim

Recommended Posts

Still looking for a solution to this...

Is there some simple way for a UniGui application to obtain the handle to its own Windows tray icon? Then i might be able to close it using Shell_NotifyIcon(NIM_DELETE...) 

Any other suggestions?

Link to comment
Share on other sites

Our unigui app is a portal app for logging and controlling a non visual delphi program. The delphi program starts the unigui portal when itself starts and close it when itself closes. The portal app should not show any tray icon. It should run silently in background and serve the portal website for the non visual delphi program (http://localhost:8080). Running the unigui app as a service is no option. We are not allowed to install it as a service.

It would be nice if we could set a property "ShowTrayIcon" in ServerModule.

Link to comment
Share on other sites

I was able to hide the Windows tray icon after startup by adding the following code to ServerModule:

 

uses
  ShellAPI,
  Forms,

...

procedure TUniServerModule.UniGUIServerModuleCreate(Sender: TObject);
var
  NotifyIconData : TNotifyIconData;
begin
  FillChar( NotifyIconData, System.SizeOf(TNotifyIconData), 0 );
  NotifyIconData.cbSize := SizeOf(TNotifyIconData);
  NotifyIconData.Wnd := Application.MainForm.Handle;
  NotifyIconData.uID := 1002;
  Shell_NotifyIcon( NIM_DELETE, @NotifyIconData );
end;

 

Does this seem like a valid approach? It works fine in my tests so far (using v1.50.0.1481 on Windows 10).

 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...