summaryrefslogtreecommitdiff
path: root/dev/nsis/FileAssociation.nsh
diff options
context:
space:
mode:
Diffstat (limited to 'dev/nsis/FileAssociation.nsh')
-rw-r--r--dev/nsis/FileAssociation.nsh190
1 files changed, 0 insertions, 190 deletions
diff --git a/dev/nsis/FileAssociation.nsh b/dev/nsis/FileAssociation.nsh
deleted file mode 100644
index b8c1e5ee..00000000
--- a/dev/nsis/FileAssociation.nsh
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-_____________________________________________________________________________
-
- File Association
-_____________________________________________________________________________
-
- Based on code taken from http://nsis.sourceforge.net/File_Association
-
- Usage in script:
- 1. !include "FileAssociation.nsh"
- 2. [Section|Function]
- ${FileAssociationFunction} "Param1" "Param2" "..." $var
- [SectionEnd|FunctionEnd]
-
- FileAssociationFunction=[RegisterExtension|UnRegisterExtension]
-
-_____________________________________________________________________________
-
- ${RegisterExtension} "[executable]" "[extension]" "[description]"
-
-"[executable]" ; executable which opens the file format
- ;
-"[extension]" ; extension, which represents the file format to open
- ;
-"[description]" ; description for the extension. This will be display in Windows Explorer.
- ;
-
-
- ${UnRegisterExtension} "[extension]" "[description]"
-
-"[extension]" ; extension, which represents the file format to open
- ;
-"[description]" ; description for the extension. This will be display in Windows Explorer.
- ;
-
-_____________________________________________________________________________
-
- Macros
-_____________________________________________________________________________
-
- Change log window verbosity (default: 3=no script)
-
- Example:
- !include "FileAssociation.nsh"
- !insertmacro RegisterExtension
- ${FileAssociation_VERBOSE} 4 # all verbosity
- !insertmacro UnRegisterExtension
- ${FileAssociation_VERBOSE} 3 # no script
-*/
-
-
-!ifndef FileAssociation_INCLUDED
-!define FileAssociation_INCLUDED
-
-!include Util.nsh
-
-!verbose push
-!verbose 3
-!ifndef _FileAssociation_VERBOSE
- !define _FileAssociation_VERBOSE 3
-!endif
-!verbose ${_FileAssociation_VERBOSE}
-!define FileAssociation_VERBOSE `!insertmacro FileAssociation_VERBOSE`
-!verbose pop
-
-!macro FileAssociation_VERBOSE _VERBOSE
- !verbose push
- !verbose 3
- !undef _FileAssociation_VERBOSE
- !define _FileAssociation_VERBOSE ${_VERBOSE}
- !verbose pop
-!macroend
-
-
-
-!macro RegisterExtensionCall _EXECUTABLE _EXTENSION _DESCRIPTION
- !verbose push
- !verbose ${_FileAssociation_VERBOSE}
- Push `${_DESCRIPTION}`
- Push `${_EXTENSION}`
- Push `${_EXECUTABLE}`
- ${CallArtificialFunction} RegisterExtension_
- !verbose pop
-!macroend
-
-!macro UnRegisterExtensionCall _EXTENSION _DESCRIPTION
- !verbose push
- !verbose ${_FileAssociation_VERBOSE}
- Push `${_EXTENSION}`
- Push `${_DESCRIPTION}`
- ${CallArtificialFunction} UnRegisterExtension_
- !verbose pop
-!macroend
-
-
-
-!define RegisterExtension `!insertmacro RegisterExtensionCall`
-!define un.RegisterExtension `!insertmacro RegisterExtensionCall`
-
-!macro RegisterExtension
-!macroend
-
-!macro un.RegisterExtension
-!macroend
-
-!macro RegisterExtension_
- !verbose push
- !verbose ${_FileAssociation_VERBOSE}
-
- Exch $R2 ;exe
- Exch
- Exch $R1 ;ext
- Exch
- Exch 2
- Exch $R0 ;desc
- Exch 2
- Push $0
- Push $1
-
- ReadRegStr $1 HKCR $R1 "" ; read current file association
- StrCmp "$1" "" NoBackup ; is it empty
- StrCmp "$1" "$R0" NoBackup ; is it our own
- WriteRegStr HKCR $R1 "backup_val" "$1" ; backup current value
-NoBackup:
- WriteRegStr HKCR $R1 "" "$R0" ; set our file association
-
- ReadRegStr $0 HKCR $R0 ""
- StrCmp $0 "" 0 Skip
- WriteRegStr HKCR "$R0" "" "$R0"
- WriteRegStr HKCR "$R0\shell" "" "open"
- WriteRegStr HKCR "$R0\DefaultIcon" "" "$R2,0"
-Skip:
- WriteRegStr HKCR "$R0\shell\open\command" "" '"$R2" "%1"'
- WriteRegStr HKCR "$R0\shell\edit" "" "Edit $R0"
- WriteRegStr HKCR "$R0\shell\edit\command" "" '"$R2" "%1"'
-
- Pop $1
- Pop $0
- Pop $R2
- Pop $R1
- Pop $R0
-
- !verbose pop
-!macroend
-
-
-
-!define UnRegisterExtension `!insertmacro UnRegisterExtensionCall`
-!define un.UnRegisterExtension `!insertmacro UnRegisterExtensionCall`
-
-!macro UnRegisterExtension
-!macroend
-
-!macro un.UnRegisterExtension
-!macroend
-
-!macro UnRegisterExtension_
- !verbose push
- !verbose ${_FileAssociation_VERBOSE}
-
- Exch $R1 ;desc
- Exch
- Exch $R0 ;ext
- Exch
- Push $0
- Push $1
-
- ReadRegStr $1 HKCR $R0 ""
- StrCmp $1 $R1 0 NoOwn ; only do this if we own it
- ReadRegStr $1 HKCR $R0 "backup_val"
- StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
- DeleteRegKey HKCR $R0
- Goto NoOwn
-
-Restore:
- WriteRegStr HKCR $R0 "" $1
- DeleteRegValue HKCR $R0 "backup_val"
- DeleteRegKey HKCR $R1 ;Delete key with association name settings
-
-NoOwn:
-
- Pop $1
- Pop $0
- Pop $R1
- Pop $R0
-
- !verbose pop
-!macroend
-
-!endif # !FileAssociation_INCLUDED \ No newline at end of file