CreateInternetShortcut macro & function

From NSIS Wiki

Author: Comm@nder21 (talk, contrib)


Contents

[edit] 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.

[edit] The Macro

[edit] 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

[edit] Example Usage

!insertmacro CreateInternetShortcut \
  "$STARTMENU\NSIS homepage" \
  "http://www.nsis.sf.net" \
  "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" "0"

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

[edit] The Function

[edit] 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

[edit] Example Usage

Push "$STARTMENU\NSIS homepage"
Push "http://www.nsis.sf.net"
Push "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
Push "0"
Call CreateInternetShortcut

[edit] 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 ...

Personal tools
donate
ads