I've created an application with the option to start on Windows startup.
First I did this via the Registry, like this:

```
private void RunOnStartup(bool RunOnStartup) {
    Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    if (RunOnStartup) {
        key.SetValue(ProgramTitle, System.Windows.Forms.Application.ExecutablePath.ToString());
    } else {
        key.DeleteValue(ProgramTitle, false);
    }
}

```

And this worked, but not correctly. It started the .exe but with the same behavior as it was a new one with the default 'config.xml' it needs. Which is obviously wrong.

I did not manage to find out what was wrong, so I tried it differently: create a shortcut in the Startup folder. Couldn't go wrong I figured, I mean, it's just a shortcut right?

I used this code:

```
private void RunOnStartup(bool RunOnStartup) {
    string startup = Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\"+ProgramTitle+".url";
    if (RunOnStartup) {
        using (StreamWriter writer = new StreamWriter(startup)) {
            string app = System.Reflection.Assembly.GetExecutingAssembly().Location;
            writer.WriteLine("[InternetShortcut]");
            writer.WriteLine("URL=file:///" + app);
            writer.WriteLine("IconIndex=0");
            string icon = app.Replace('\\', '/');
            writer.WriteLine("IconFile=" + icon);
            writer.Flush();
        }
    } else {
        if (File.Exists(startup)) {
            File.Delete(startup);
        }
    }
}

```

And this worked as well, it started, but with the same behavior.

So my question is, does anyone have any idea how this happens? Any help is much appreciated!

Thanks