SyncTrayzor to run on system power up instead of user login - Cannot bring the app to foreground

I had setup a task in task scheduler to start the SyncTrayzor app at System Startup in my Win 10 machine.

I have set it as Run whether user is logged on or not in the General → Security Options tab.

Synctrayzor and syncthing starts successfully when machine is turned on. I dont have to manually login to start SyncTrayzor which is what I need.

But the problem with choosing “Run whether user is logged in or not” is that I cant see the tray icon as both SyncTrayzor and Syncthing are run as Background process and I cant bring them to foreground.

I also cannot open Synctrayzor from Start menu as another instance is already running.

Any workaround for this?

I need the tray icon. I also do not want to login in order to start the process (mainly because I might not be near the machine when it restarts due to power cut)

I could be wrong, but SyncTrayzor wasn’t intended to be started via the Windows Task Scheduler. From SyncTrayzor’s GitHub page:

SyncTrayzor is a little tray utility for Syncthing on Windows. It hosts and wraps Syncthing, making it behave more like a native Windows application and less like a command-line utility with a web browser interface.

One of SyncTrayzor’s features is “Optionally starts on login, so you don’t need to set up Syncthing as a service.”

Because SyncTrayzor talks to Syncthing, one possible workaround is to have Window Task Scheduler be responsible for starting Syncthing instead of SyncTrayzor, then have SyncTrayzor start at Windows login to monitor and manage Syncthing.

The technical details required can be gleaned from SyncTrayzor’s GitHub page.

one possible workaround is to have Window Task Scheduler be responsible for starting Syncthing instead of SyncTrayzor, then have SyncTrayzor start at Windows login to monitor and manage Syncthing.

The problem I have is SyncTrayzor always expects to start Syncthing. If Syncthing is already running it doesnt show that and instead throws error asking to stop all syncthing process and restart them.

Found this comment from the Developer of Syncthing as well https://forum.syncthing.net/t/synctrayzor-question/16229/12

which confirms the worst case scenario for me.

SyncTrayzor needs to be the service which starts Syncthing, because it needs to pass the API key to use securely to it on startup.

I guess I’ll have to rely on Syncthing service alone and use from Web GUI instead of SyncTrayzor. Or manually restart syncthing everytime i login to use with SyncTrayzor

Yes, that’s true, but it still doesn’t mean that what you want can’t be done…

First, consider that SyncTrayzor launches Syncthing like so:

syncthing.exe --gui-address=<address> --gui-apikey=<key>

(The address and key are available and customizable under File → Settings in SyncTrayzor.)

So if the syncthing.exe binary that SyncTrayzor calls is a dummy that actually does nothing, SyncTrayzor will assume that it’s launched Syncthing and try to talk to a HTTP/HTTPS service located at the configured address with the configured key.

The real syncthing.exe is placed somewhere for Windows Task Manager to launch, and is configured with the same GUI address and GUI API key that SyncTrayzor is using so that SyncTrayzor will be able to successfully talk to Syncthing as though it was the instance that SyncTrayzor had launched (even though it really isn’t).

1 Like