Here are the steps.
1. Ctrl Alt Del [This is the quick way... other shortcuts possible.]
Select Task Manager
2. Select StartUp Tab
It appears to default to showing start-up times in descending sequence of start-up times.
You should be able to debug your code... so you can reconcile the start-up times reported by Task Manager to the actual timestamps of your app.
Create a log file with time stamps and analyse where the big delays occur.
I suspect that your app is waiting for network connection or peripheral (eg USB printer, scanner, card reader).
Ignore these connections and load the app. Go back and refresh if you need to cater for slow connections..... but allow your app to finish and present to the user. More importantly ... it does not delay any other apps in the StartUp pipeline.
I just spotted the follow up comment.... will review as I am keen to find an industrial strength and reliable utility to record startup times of all drivers and apps.
It is a real pain to have high end hardware throttled by inefficient apps.
My background is large scale enterprise level apps and infrastructure. I always feel sorry for the end user who does not understand what goes on behind the scenes. I have written code in machine code and assembler and lots of other stuff. Modern tools are so good there is no excuse for bad coding or unit/ system testing.
Also, a lot of people take (and pay) for my advice but most of the time I am happy to provide expert advice foc.
I think your app has potential, otherwise I would not waste time making these comments.
But... it needs some refinements, which should be easy to code... but make a massive difference to the usability of your app.