6363;
6464
6565!macro APP_ASSOCIATE EXT FILECLASS DESCRIPTION ICON COMMANDTEXT COMMAND
66- ; Backup the previously associated file class
67- ReadRegStr $R0 SHELL_CONTEXT " Software\Classes\.${EXT}" " "
68- WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}" " ${FILECLASS}_backup" " $R0"
69-
7066 WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}" " " " ${FILECLASS}"
67+ WriteRegNone SHELL_CONTEXT " Software\Classes\.${EXT}\OpenWithProgids" " ${FILECLASS}"
7168
7269 WriteRegStr SHELL_CONTEXT " Software\Classes\${FILECLASS}" " " ` ${DESCRIPTION}`
7370 WriteRegStr SHELL_CONTEXT " Software\Classes\${FILECLASS}\DefaultIcon" " " ` ${ICON}`
7774!macroend
7875
7976!macro APP_ASSOCIATE_EX EXT FILECLASS DESCRIPTION ICON VERB DEFAULTVERB SHELLNEW COMMANDTEXT COMMAND
80- ; Backup the previously associated file class
81- ReadRegStr $R0 SHELL_CONTEXT " Software\Classes\.${EXT}" " "
82- WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}" " ${FILECLASS}_backup" " $R0"
83-
8477 WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}" " " " ${FILECLASS}"
78+ WriteRegNone SHELL_CONTEXT " Software\Classes\.${EXT}\OpenWithProgids" " ${FILECLASS}"
8579 StrCmp " ${SHELLNEW}" " 0" +2
8680 WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}\ShellNew" " NullFile" " "
8781
10397
10498
10599!macro APP_UNASSOCIATE EXT FILECLASS
106- ; Backup the previously associated file class
107- ReadRegStr $R0 SHELL_CONTEXT " Software\Classes\.${EXT}" ` ${FILECLASS}_backup`
108- WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}" " " " $R0"
109-
100+ DeleteRegValue SHELL_CONTEXT " Software\Classes\.${EXT}\OpenWithProgids" " ${FILECLASS}"
110101 DeleteRegKey SHELL_CONTEXT ` Software\Classes\${FILECLASS}`
111102!macroend
112103
129120; Using the system.dll plugin to call the SHChangeNotify Win32 API function so we
130121; can update the shell.
131122 System::Call " shell32::SHChangeNotify(i,i,i,i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_FLUSH}, 0, 0)"
132- !macroend
123+ !macroend
0 commit comments