Search code examples
windowsregistrystartup

Which is a best practice to start programs automatically in windows, Common startup group or Registry?


I am writing desktop programs for windows and when I need to put some program to start automatically I always use one of those options:

1 - Put a shortcut to the program in the startup group

2 - Create a value key on Windows Registry ("SOFTWARE\Microsoft\Windows\CurrentVersion\Run")

Which of this options is a best practice?


Solution

  • It depends on how much weight you would apply to the following questions:

    As a user, should I be able to deactivate the automatic startup easily, even temporarily?

    As a user, should I get the feeling that the developer trusts me to know what I'm doing?

    Clarification:

    If I have a shortcut in the AutoStart folder, I know that I can quickly disable this part by myself and the developer trusts me to do this.

    If I don't have this visual clue, I have to actively look for it using more-or-less arcane tools (speaking from experience here).

    If the automatic startup is essential for the correct function of the program, by all means, put it somewhere I can't get to it. But if it's a nice-to-have thing, like a "quickstarter", then please don't.