The registry location you're trying to use may be not what you want.
You're confused, because even in your Question you did not describe what exactly event should trigger the start of your application.
Not to worry. Consider the following:
First, you can consider creation of Windows Service. This is the ultimate approach: its process is started on system start-up and it keep running when the user's log in/out. The Service process can detect different events in the system and act appropriately. This solution needs essential effort though, especially in debugging. Debugging is still quite possible but needs some learning and extra work.
The simplest (and perhaps the least powerful) option is adding a LNK file to the system Start Menu in the item "Startup" per user. One problem is tracking this change when a new user is added. You can also use the menu item which works for all users. Please see the note made by Kim below (Kim, than you very much for this useful comment.)
Finally, here is my "secret weapon": Sysinternals application "AutoRuns". I used it as an ultimate reference for the information on the topic. Go to Sysinternals Web page, download Sysinternals Suit:
http://technet.microsoft.com/en-us/sysinternals/bb842062[
^]. You can download separate utilities (see
http://technet.microsoft.com/en-us/sysinternals/bb545027[
^]), but I recommend all of it — must-have for all developers. Unpack and run AutoRuns, look at all the sections and help. You will find all possible points where your application can be loaded automatically. You can also automatically jump from an AutoRuns item to a corresponding Registry item with RegEdit. Enjoy!
—SA