- running in background,
- automatically starts when device is booted up,
- but has UI, which could show up by clicking on it in the system tray.
In C#, you can just use P/Invoke for the System Tray
I had uploaded a sample in WinUI 3 (https://github.com/castorix/WinUI3_NotifyIcon)
(function TrayMessage in NotifyIcon.cs)
You can do it in WPF, Winforms, WinUI 3 (you simply hide/show the main window as I did when I minimize/restore it)
To launch the program at Startup, you can write the path+exe in one of the registry keys ,like
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run