6
votes

I am trying to have my application automatically launch and run the log-in logic when Windows starts up.

I've got it working with a shortcut in the startup folder with parameters but I was wondering if there is some way to set a registry key that can start my program and pass it parameters like a shortcut would?

I'm using Inno Setup for the installer and I was using this line:

Name: "{commonstartup}\AppNameHere"; Filename: "{app}\AppNameHere.exe"; \
    Parameters: "/login"`

But I want to be able to instead use a registry entry like so:

Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; \
    ValueType: string; ValueName: "AppNameHere"; ValueData: """{app}\AppNameHere.exe"""; \
    Flags: uninsdeletevalue`

I thought there would be some way to specify parameters for the startup but I cannot find anything on the Inno Setup website other than what I already found out about adding the registry key itself from http://www.jrsoftware.org/iskb.php?startwithwindows

Does anyone have experience with adding registry keys and starting applications with parameters on Windows startup?

1
Just include your parameter in ValueData, separated by a space - after the quote that belongs to the path. - Sertac Akyuz
@Greg Are you just saying that because I tagged this C# or is that specific to InnoSetup? The code snippet above is directly from their knowledge base, so I assume it should work fine.. - Zack
@SertacAkyuz I think this will work then Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "AppNameHere"; ValueData: """{app}\AppNameHere.exe"" /login"; Flags: uninsdeletevalue - Zack
I'm saying because you tagged C#. When you call C# Assemblies to manipulate the Registry it can be finicky. Yes, that should work I believe. - Greg
@Zack - Yes, that's what I was thinking. - Sertac Akyuz

1 Answers

6
votes

You can include parameters in ValueData, separated with a space from each other and from the executable path. E.g.:

[Registry]
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; \
    ValueType: string; ValueName: "AppNameHere"; \
    ValueData: """{app}\AppNameHere.exe"" /login"