CreateInternetShortcut macro & function: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Adding new author and category links.)
(${NSISDIR} is compile time)
Line 18: Line 18:
   "$STARTMENU\NSIS homepage" \
   "$STARTMENU\NSIS homepage" \
   "http://www.nsis.sf.net" \
   "http://www.nsis.sf.net" \
   "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" "0"</highlight-nsis>
   "$InstDir\youricon.ico" "0"</highlight-nsis>
Note:
Note:
"FILENAME" should contain absolute path-information, if not, it will create the shortcut relative to the current "$OUTDIR".
"FILENAME" should contain absolute path-information, if not, it will create the shortcut relative to the current "$OUTDIR".
Line 48: Line 48:
<highlight-nsis>Push "$STARTMENU\NSIS homepage"
<highlight-nsis>Push "$STARTMENU\NSIS homepage"
Push "http://www.nsis.sf.net"
Push "http://www.nsis.sf.net"
Push "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
Push "$InstDir\youricon.ico"
Push "0"
Push "0"
Call CreateInternetShortcut</highlight-nsis>
Call CreateInternetShortcut</highlight-nsis>

Revision as of 15:25, 21 January 2011

Author: Comm@nder21 (talk, contrib)


Introduction

It's a frequently asked question how to create internet shortcuts. So, i've written an easy to use macro, doing this for you with a syntax like CreateShortcut. Also, there's a function working the same way.

The Macro

Source

!macro CreateInternetShortcut FILENAME URL ICONFILE ICONINDEX
WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "${ICONINDEX}"
!macroend

Example Usage

!insertmacro CreateInternetShortcut \
  "$STARTMENU\NSIS homepage" \
  "http://www.nsis.sf.net" \
  "$InstDir\youricon.ico" "0"

Note: "FILENAME" should contain absolute path-information, if not, it will create the shortcut relative to the current "$OUTDIR".

The Function

Source

(doing just the same as the macro does)

Function CreateInternetShortcut
# store the vars and get the settings
Exch $3  ; the iconindex
Exch
Exch $2  ; the iconfile
Exch 3
Exch $1  ; the url
Exch 4
Exch $0  ; the filename (including path)
# create the shortcut
WriteINIStr "$0.url" "InternetShortcut" "URL" "$1"
WriteINIStr "$0.url" "InternetShortcut" "IconFile" "$2"
WriteINIStr "$0.url" "InternetShortcut" "IconIndex" "$3"
# restore the used vars
Pop $0
Pop $3
Pop $2
Pop $1
FunctionEnd

Example Usage

Push "$STARTMENU\NSIS homepage"
Push "http://www.nsis.sf.net"
Push "$InstDir\youricon.ico"
Push "0"
Call CreateInternetShortcut

Feedback

Any suggestions, feature requests or even bug reports? Feel free to send me an email or a private message.

Please post any other question, e.g. about usage and customization at the NSIS forums. Remember: You're not alone ...