--- /dev/null
+/*\r
+_____________________________________________________________________________\r
+ \r
+ File Association\r
+_____________________________________________________________________________\r
+ \r
+ Based on code taken from http://nsis.sourceforge.net/File_Association \r
+ \r
+ Usage in script:\r
+ 1. !include "FileAssociation.nsh"\r
+ 2. [Section|Function]\r
+ ${FileAssociationFunction} "Param1" "Param2" "..." $var\r
+ [SectionEnd|FunctionEnd]\r
+ \r
+ FileAssociationFunction=[RegisterExtension|UnRegisterExtension]\r
+ \r
+_____________________________________________________________________________\r
+ \r
+ ${RegisterExtension} "[executable]" "[extension]" "[description]"\r
+ \r
+"[executable]" ; executable which opens the file format\r
+ ;\r
+"[extension]" ; extension, which represents the file format to open\r
+ ;\r
+"[description]" ; description for the extension. This will be display in Windows Explorer.\r
+ ;\r
+ \r
+ \r
+ ${UnRegisterExtension} "[extension]" "[description]"\r
+ \r
+"[extension]" ; extension, which represents the file format to open\r
+ ;\r
+"[description]" ; description for the extension. This will be display in Windows Explorer.\r
+ ;\r
+ \r
+_____________________________________________________________________________\r
+ \r
+ Macros\r
+_____________________________________________________________________________\r
+ \r
+ Change log window verbosity (default: 3=no script)\r
+ \r
+ Example:\r
+ !include "FileAssociation.nsh"\r
+ !insertmacro RegisterExtension\r
+ ${FileAssociation_VERBOSE} 4 # all verbosity\r
+ !insertmacro UnRegisterExtension\r
+ ${FileAssociation_VERBOSE} 3 # no script\r
+*/\r
+ \r
+ \r
+!ifndef FileAssociation_INCLUDED\r
+!define FileAssociation_INCLUDED\r
+ \r
+!include Util.nsh\r
+ \r
+!verbose push\r
+!verbose 3\r
+!ifndef _FileAssociation_VERBOSE\r
+ !define _FileAssociation_VERBOSE 3\r
+!endif\r
+!verbose ${_FileAssociation_VERBOSE}\r
+!define FileAssociation_VERBOSE `!insertmacro FileAssociation_VERBOSE`\r
+!verbose pop\r
+ \r
+!macro FileAssociation_VERBOSE _VERBOSE\r
+ !verbose push\r
+ !verbose 3\r
+ !undef _FileAssociation_VERBOSE\r
+ !define _FileAssociation_VERBOSE ${_VERBOSE}\r
+ !verbose pop\r
+!macroend\r
+ \r
+ \r
+ \r
+!macro RegisterExtensionCall _EXECUTABLE _EXTENSION _DESCRIPTION\r
+ !verbose push\r
+ !verbose ${_FileAssociation_VERBOSE}\r
+ Push `${_DESCRIPTION}`\r
+ Push `${_EXTENSION}`\r
+ Push `${_EXECUTABLE}`\r
+ ${CallArtificialFunction} RegisterExtension_\r
+ !verbose pop\r
+!macroend\r
+ \r
+!macro UnRegisterExtensionCall _EXTENSION _DESCRIPTION\r
+ !verbose push\r
+ !verbose ${_FileAssociation_VERBOSE}\r
+ Push `${_EXTENSION}`\r
+ Push `${_DESCRIPTION}`\r
+ ${CallArtificialFunction} UnRegisterExtension_\r
+ !verbose pop\r
+!macroend\r
+ \r
+ \r
+ \r
+!define RegisterExtension `!insertmacro RegisterExtensionCall`\r
+!define un.RegisterExtension `!insertmacro RegisterExtensionCall`\r
+ \r
+!macro RegisterExtension\r
+!macroend\r
+ \r
+!macro un.RegisterExtension\r
+!macroend\r
+ \r
+!macro RegisterExtension_\r
+ !verbose push\r
+ !verbose ${_FileAssociation_VERBOSE}\r
+ \r
+ Exch $R2 ;exe\r
+ Exch\r
+ Exch $R1 ;ext\r
+ Exch\r
+ Exch 2\r
+ Exch $R0 ;desc\r
+ Exch 2\r
+ Push $0\r
+ Push $1\r
+ \r
+ ReadRegStr $1 HKCR $R1 "" ; read current file association\r
+ StrCmp "$1" "" NoBackup ; is it empty\r
+ StrCmp "$1" "$R0" NoBackup ; is it our own\r
+ WriteRegStr HKCR $R1 "backup_val" "$1" ; backup current value\r
+NoBackup:\r
+ WriteRegStr HKCR $R1 "" "$R0" ; set our file association\r
+ \r
+ ReadRegStr $0 HKCR $R0 ""\r
+ StrCmp $0 "" 0 Skip\r
+ WriteRegStr HKCR "$R0" "" "$R0"\r
+ WriteRegStr HKCR "$R0\shell" "" "open"\r
+ WriteRegStr HKCR "$R0\DefaultIcon" "" "$R2,0"\r
+Skip:\r
+ WriteRegStr HKCR "$R0\shell\open\command" "" '"$R2" "%1"'\r
+ WriteRegStr HKCR "$R0\shell\edit" "" "Edit $R0"\r
+ WriteRegStr HKCR "$R0\shell\edit\command" "" '"$R2" "%1"'\r
+ \r
+ Pop $1\r
+ Pop $0\r
+ Pop $R2\r
+ Pop $R1\r
+ Pop $R0\r
+ \r
+ !verbose pop\r
+!macroend\r
+ \r
+ \r
+ \r
+!define UnRegisterExtension `!insertmacro UnRegisterExtensionCall`\r
+!define un.UnRegisterExtension `!insertmacro UnRegisterExtensionCall`\r
+ \r
+!macro UnRegisterExtension\r
+!macroend\r
+ \r
+!macro un.UnRegisterExtension\r
+!macroend\r
+ \r
+!macro UnRegisterExtension_\r
+ !verbose push\r
+ !verbose ${_FileAssociation_VERBOSE}\r
+ \r
+ Exch $R1 ;desc\r
+ Exch\r
+ Exch $R0 ;ext\r
+ Exch\r
+ Push $0\r
+ Push $1\r
+ \r
+ ReadRegStr $1 HKCR $R0 ""\r
+ StrCmp $1 $R1 0 NoOwn ; only do this if we own it\r
+ ReadRegStr $1 HKCR $R0 "backup_val"\r
+ StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key\r
+ DeleteRegKey HKCR $R0\r
+ Goto NoOwn\r
+ \r
+Restore:\r
+ WriteRegStr HKCR $R0 "" $1\r
+ DeleteRegValue HKCR $R0 "backup_val"\r
+ DeleteRegKey HKCR $R1 ;Delete key with association name settings\r
+ \r
+NoOwn:\r
+ \r
+ Pop $1\r
+ Pop $0\r
+ Pop $R1\r
+ Pop $R0\r
+ \r
+ !verbose pop\r
+!macroend\r
+ \r
+!endif # !FileAssociation_INCLUDED\r
;; Spanish language strings for the Windows Viking NSIS installer.\r
;; Windows Code page: 1252\r
;;\r
-;; Author: Roberto Camarero <rcamarero@gmail.com>\r
+;; Author: Roberto\r
;;\r
;; Modified for Viking by Mathieu Albinet <mathieu_a@users.sourceforge.net>\r
\r
!define VIKING_SHORTCUTS_SECTION_TITLE "Accesos directos"\r
!define VIKING_DESKTOP_SHORTCUT_SECTION_TITLE "Escritorio"\r
!define VIKING_STARTMENU_SHORTCUT_SECTION_TITLE "Menú Inicio"\r
+!define VIKING_FILE_ASSOCIATION_SECTION_TITLE "Extensión.vik"\r
!define VIKING_SECTION_DESCRIPTION "Ficheros y DLLs de base de Viking"\r
\r
!define VIKING_SHORTCUTS_SECTION_DESCRIPTION "Accesos directos para lanzar Viking"\r
!define VIKING_DESKTOP_SHORTCUT_DESC "Crear un acceso directo a Viking en el escritorio"\r
!define VIKING_STARTMENU_SHORTCUT_DESC "Crear un acceso directo a Viking en el menú de inicio"\r
+!define VIKING_FILE_ASSOCIATION_DESC "Asociar Viking con la extensión .vik"\r
\r
; Installer Finish Page\r
!define VIKING_FINISH_VISIT_WEB_SITE "Visite la página web de Viking" \r