Archive: How can I add a shortcut to Startup folder?


How can I add a shortcut to Startup folder?
Hello,

I am wondering how I add a shortcut of my program to Startup folder?

Please help. Thanks.



CreateShortCut "$SMPROGRAMS\Startup\My Program.lnk" "$INSTDIR\My Program.exe" \
"some command line parameters" "$INSTDIR\My Program.exe" 2 SW_SHOWNORMAL \
ALT|CTRL|SHIFT|F5 "a description"

A Few notes:

Thanks!

What's "some command line parameters" or "a description"?

Should I leave it as is?


"some command line parameters"
This would be extra command line parmaters for the EXE. Normally, this would be null ("").

"a desciption"
This can be anything you want. It just serves as a way to describe the shortcut. It can be blank if you wish.


Really appreciate your help. Thanks :)


But the shortcut icon is not showing. I am getting the default windows exe icon :(

What's wrong?


Keep it simple:

CreateShortCut "$SMPROGRAMS\Startup\My Program.lnk" "$INSTDIR\My Program.exe"

the correct folder variable is $SMSTARTUP not $SMPROGRAMS\Startup so the instructions should be: CreateShortCut "$SMSTARTUP\My Program.lnk" "$INSTDIR\My Program.exe"


Good point. Our mistake.


Thanks guys for your follow-ups. But as I have mentionned:

The shortcut icon is not showing. I am getting the default windows exe icon... What's wrong?


Is it just the icon that is messed up or is the entire shortcut screwed up? What was the exact command you used in your script?


Everything is working fine, but the icon is not showing up.

SetShellVarContext all

CreateShortCut "$SMSTARTUP\my prog.lnk" "$INSTDIR\my prog.exe" \
"" "$INSTDIR\my prog.exe" 2 SW_SHOWNORMAL \
ALT|CTRL|SHIFT|F5 "Do not delete this shortcut!"

I found this on the manual but I didn't get it.

4.9.3.4 CreateShortCut
link.lnk target.file [parameters [icon.file [icon_index_number [start_options [keyboard_shortcut [description]]]]]]
Creates a shortcut 'link.lnk' that links to 'target.file', with optional parameters 'parameters'. The icon used for the shortcut is 'icon.file,icon_index_number'; for default icon settings use empty strings for both icon.file and icon_index_number. start_options should be one of: SW_SHOWNORMAL, SW_SHOWMAXIMIZED, SW_SHOWMINIMIZED, or an empty string. keyboard_shortcut should be in the form of 'flag|c' where flag can be a combination (using |) of: ALT, CONTROL, EXT, or SHIFT. c is the character to use (a-z, A-Z, 0-9, F1-F24, etc). Note that no spaces are allowed in this string. A good example is "ALT|CONTROL|F8". $OUTDIR is used for the working directory. You can change it by using SetOutPath before creating the Shortcut. description should be the description of the shortcut, or comment as it is called under XP. The error flag is set if the shortcut cannot be created (i.e. either of the paths (link or target) does not exist, or some other error).

CreateDirectory "$SMPROGRAMS\My Company"
CreateShortCut "$SMPROGRAMS\My Company\My Program.lnk" "$INSTDIR\My Program.exe" \
"some command line parameters" "$INSTDIR\My Program.exe" 2 SW_SHOWNORMAL \
ALT|CTRL|SHIFT|F5 "a description"

Ok, it worked when I did:

CreateShortCut "$SMSTARTUP\My Program.lnk" "$INSTDIR\My Program.exe" "hourglass.ico"

But how can I add the comment: "Do not delete this shortcut"?


And...

This is not working also:

Section "Uninstall"

Delete "$INSTDIR\Uninstall My Program.exe"
Delete "$INSTDIR\My Program.exe"
RMDir $INSTDIR
Delete "$SMSTARTUP\My Program.lnk" <------- Everything is ok, except this line. It doesn't remove the shortcut!

SectionEnd

Please help. Thanks.


Please, PLEEEEEESE do not double post. They are often ignored, or people will stop posting.

Shortcut description:


CreateShortCut "$SMPROGRAMS\My Company\My Program.lnk" "$INSTDIR\My Program.exe" "" "hourglass.ico" "" "" "" "a description"

It worked
I'm really, Realllllly sorry :o


Actually you can add program path to registry "Run" key as well. If you add program to Start Menu/Startup folder, users can easily remove them by "Right Click->Delete". This post describes how to start program automatically in several ways, Also RunOnce key is an available option.