I make an application that, when you run it, will put the .exe in Startup. I have this code for that:
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey(\"S
Is your application digitally signed? If not you should try signing your application (you need a public certificate, but that costs money)
Application signing/verification
If you need to run at startup, the generally preferred way is to run it as a windows service.
If you need a gui as well, then you should have a gui that talks to the windows service that hosts your application.
I think any way of having an application automatically attempt to run at startup will be flagged as virus like behavior by any anti-virus system. Just tell your users to approve the change when your solution is installing.
Unless (of course) you are trying to write a virus.
In that case stop.
Typically your installer (MSI) would set the "launch application at startup" registry setting however I think that if your application is digitally signed with an authenticode signature then this problem will disappear.