63
63
;
64
64
65
65
!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
-
70
66
WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}" " " " ${FILECLASS}"
67
+ WriteRegNone SHELL_CONTEXT " Software\Classes\.${EXT}\OpenWithProgids" " ${FILECLASS}"
71
68
72
69
WriteRegStr SHELL_CONTEXT " Software\Classes\${FILECLASS}" " " ` ${DESCRIPTION}`
73
70
WriteRegStr SHELL_CONTEXT " Software\Classes\${FILECLASS}\DefaultIcon" " " ` ${ICON}`
77
74
!macroend
78
75
79
76
!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
-
84
77
WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}" " " " ${FILECLASS}"
78
+ WriteRegNone SHELL_CONTEXT " Software\Classes\.${EXT}\OpenWithProgids" " ${FILECLASS}"
85
79
StrCmp " ${SHELLNEW}" " 0" +2
86
80
WriteRegStr SHELL_CONTEXT " Software\Classes\.${EXT}\ShellNew" " NullFile" " "
87
81
103
97
104
98
105
99
!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}"
110
101
DeleteRegKey SHELL_CONTEXT ` Software\Classes\${FILECLASS}`
111
102
!macroend
112
103
129
120
; Using the system.dll plugin to call the SHChangeNotify Win32 API function so we
130
121
; can update the shell.
131
122
System::Call " shell32::SHChangeNotify(i,i,i,i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_FLUSH}, 0, 0)"
132
- !macroend
123
+ !macroend
0 commit comments