To all thoose that say "First remove them from run at startup.
" i must say:
Not all apps will work, some re-add them selves to registry when are run.
So deleting the start-up registry key is not a solution for not running it on next boot, unless the registry key is deleted after killing the app.
The worst case i found (scanned driver) was it launch on boot an app, such app has no GUI, but it locks it self with "system" proccess, so it can not be killed unless you kill "system" (warning doing so = BSOD), also if locks / hooks registry changes, so after deleting the key it reappears, etc. Since app can not be killed you will not be able to avoid it from running on next boot. Only SOLUTION work (without formatting): Start with a Linux and delete such app, never ever again re install it... but since it is a "driver" it gets installed again as soon as USB is up (also with device not plugged), so you need to remove all USB entries, driver, files, etc, reboot on Linux and delete the app.
I understand for "normal" apps, it is very easy... just remove the lauch registry key and put such command on a .lnk file (shortcut), then from a script run that .lnk you want doing a sleep between them... or have some on a 1 minute differ, others on a 5 minute, etc... scripting it and calling all the scripts in parallel, so each one can wait for a different time, bla bla bla...
But what to do with that ones (java Updater, etc) that readd them selves to registry as soon as they are run, or when they are closed, or worst... while they are running as soon as they detect missing key on registry, etc.
Some have the option to not auto-start, but others do not have.
For "normals" it is very good and works great... for such, let's say "ugly", ones, what can be done? Nothing, except delete the registry key after on shutdown after app has been killed / exited.
I have not see any program that let you configure kay registry keys you want to be deleted on final stage of shutdown, i see someones that do in on early stages of shutdown... but can not control that other apps are still running (can not set order of shutdown), so if some one is still running, as soon as reg key got deleted, such one running re-add it.
I got my own solution (very nasty i must admit): I lock such registry keys without admin rights, only with specific user i use rights, so that way any app (not running as system special user) runnign with admins rights, etc. can not modify it... warning with some apps they will refure to continue running when launched because they cound not change such registry key, so you must run a 4 step script to launch them... set rights to allow, run the app and wait a little, set the rights to not allow (admin) but allow specific user, delete the key (since the script rights is user rights, it will be allowed)... and when the app will again try to re-add it will not be able to, if lucky the app will not abruptly exit, else... you must let the registry there till shutdown... for such case add a schedule task to delete the registry key... remember registry keys can be also deleted by launching a .reg with instructions for that... no need to create an app to do it.
Etc., etc., i wish some freeware tool have such things implemented, but i still found no one, neither a pay one.